MS SQL Server: minimum k databázam, schémam a používateľom

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ľ.

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.

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *