Základné koncepty v MS SQL Server
http://msdn.microsoft.com/en-us/library/ms179422.aspx
- počítač má nainštalovanú 1 či viac inštancií SQL Servera
- inštancia obsahuje 1 či viac databáz
- v databáze je 1 či viac schém, teda skupín vlastníkov databázových objektov
- v schéme existujú databázové objekty: tabuľky, pohľady, uložené procedúry…
Špecifiká:
- niektoré DB objekty sú v rámci databázy, ale mimo schémy: certifikáty, asymetrické kľúče
O súboroch
- databáza je uložená v súborovom systéme v súboroch. Súbory možno zoskupiť do filegroups
O používateľoch
- používatelia s prístupom k inštancii sú identifikovaní cez login
- používatelia s prístupom k databáze sú identifikovaní ako databázoví používatelia (database users)
- databázový používateľ môže byť založený na logine
- okrem prípadov contained database, kde používateľ databázy nemusí byť založený na logine.
Prideľovanie právomocí
- používateľ s prístupom k databáze môže mať povolenia (permissions) na prístup k objektom databázy
- povolenia môžu byť priraďované:
- používateľom
- alebo rolám. Rola môže mať viacerých používateľov.
Schémy
Zdroj: http://technet.microsoft.com/en-us/library/dd283095%28v=sql.100%29.aspx
- pomenovaný kontajner pre objekty
- umožňuje zoskupovať objekty do menných priestorov (namespaces v .NET alebo analógia balíčkov v Jave)
- kontajner pre databázové objekty
Objekt v databáze má jednoznačné pomenovanie:
Server.Databáza.Schéma.Objekt
Do verzie 2005:
- vlastníci databázových objektov a používatelia boli stotožnení
- databázový objekt (tabuľka a pod.) bol vlastnený používateľom
- napr. používateľom
dbo
- tabuľku mohol vlastniť len jeden používateľ.
- napr. používateľom
Limitácie vtedy i dnes:
- vlastníkovi objektu nemožno odobrať práva k tomuto objektu
- používateľa nemožno odobrať z databázy, ak v nej vlastní objekty
Od verzie 2005:
- objekt vlastnený databázovým používateľom nepatrí používateľovi, ale schéme
- tabuľka patrí do schémy, schéma je vo vlastníctve používateľa
- vlastník schémy môže vlastniť jednu či viac schém
- možno lepšie prideľovať práva:
- sprístupniť objekty v schéme na čítanie, ale nie na zmenu
- zabrániť priamemu prístupu cez dopyty
- dať právo odstraňovať objekty aj iným používateľom okrem vlastníka
- vlastníctvo schémy je prenosné
- objekty možno presúvať medzi schémami
- používateľa možno odstrániť, aj keď vlastní objekty v schéme.
Implicitná schéma
ak sa pri použití objektu neuvedie schéma, automaticky sa predpokladá schéma
dbo
. Príkladom je prístup k objektu (tabuľke)pouzivatelia
:SELECT * FROM pouzivatelia
vlastníkom je používateľ
dbo
- používatelia vytvorení cez
CREATE USER
majú túto schému ako implicitnú
Práva k schéme
- Vlastníkom schémy môže byť ľubovoľný principal
- nové objekty sú automaticky vlastnené principalom, ktorý je vlastníkom schémy
Zabudované schémy
Štyri schémy zodpovedajúce štyrom pevným rolám
- dbo
- guest
- sys
- INFORMATION_SCHEMA
Nemožno ich dropnúť. Schéma sys
a INFORMATION_SCHEMA
sú pre systémové objekty: v nich nemožno vytvárať objekty.