Vytvoření databázového uživatele v MS SQL Server. Vytvoření přihlášení pomocí SQL Server Management Studio

Je uvažován bezpečnostní systém přijatý v jazyce SQL. Jsou uvedena obecná pravidla pro řízení přístupu. Popisuje režimy autentizace a komponenty bezpečnostní struktury (uživatelé, databázové role), administraci bezpečnostního systému (vytváření a správa účtů, správa uživatelů a rolí). Je uvedena definice uživatelských práv pro přístup k databázovým objektům. Zvažují se implicitní práva, otázky odepření přístupu a implicitního odepření přístupu a také konflikty přístupu.

Správa uživatelů databáze

Stabilní systém správa uživatelů– předpoklad zabezpečení dat uložené v libovolném relačním DBMS. V SQL neexistuje žádný standardní příkaz vytváření uživatelů databáze – každá implementace to dělá jinak. V některých implementacích mají tyto speciální příkazy určité podobnosti, zatímco v jiných se jejich syntaxe výrazně liší. Bez ohledu na konkrétní implementaci jsou však všechny základní principy stejné.

Správa uživatelů v prostředí MS SQL Server

Zvažme otázku vytváření uživatelů v prostředí MS SQL Server.

Po návrhu logické struktury databáze, vztahů mezi tabulkami, integritních omezení a dalších struktur je nutné určit okruh uživatelů, kteří budou mít k databázi přístup.

Systém SQL server má dvouúrovňovou konfiguraci omezení přístupu k datům. Na první úrovni je nutné vytvořit tzv uživatelský účet(login), což mu umožňuje připojit se k samotnému serveru, ale automaticky mu nedává přístup k databázím. Na druhé úrovni musí být vytvořen uživatelský záznam pro každou databázi SQL serveru na základě účtu. Na základě práv udělených uživateli jako databázovému uživateli (uživateli) získává jeho přihlašovací jméno (login) přístup do odpovídající databáze. V různých databázích může mít přihlášení stejného uživatele stejná nebo různá uživatelská jména s různými přístupovými právy. Jinými slovy, s pomocí uživatelský účet dojde k připojení k SQL serveru, po kterém jsou určeny jeho úrovně přístupu pro každou databázi zvlášť.

V systému SQL server jsou další objekty - role, které určují úroveň přístupu k objektům SQL serveru. Jsou rozděleni do dvou skupin: ti, kterým jsou přiřazeni uživatelských účtů servery a používá se k omezení přístupu k databázovým objektům.

Na úrovni serveru tedy bezpečnostní systém pracuje s následujícími koncepty:

  • autentizace ;
  • účet ;
  • vestavěné role serveru.

Na úrovni databáze platí následující koncepty;

  • uživatel databáze;
  • pevná databázová role;
  • zvyk roli databáze.

Režimy ověřování

SQL Server nabízí dva režimy autentizace uživatele:

  • režim ověřování pomocí Windows NT/2000;
  • ověřování ve smíšeném režimu (ověření Windows NT a ověřování serveru SQL).

Správa zabezpečovacího systému

Pro vytvoření uživatele V prostředí MS SQL Server by měly být provedeny následující kroky:

  1. Vytvořit v databázi uživatelský účet zadáním hesla a výchozího názvu databáze (sp_addlogin).
  2. Přidejte tohoto uživatele do všech požadovaných databází (sp_adduser).
  3. Udělte mu příslušná oprávnění v každé databázi (příkaz GRANT).

Vytvořte nový účet lze provést pomocí systémové uložené procedury:

sp_addlogin [@login=] "účet" [, [@password=] "heslo"] [, [@defdb=] "výchozí_databáze"]

Po dokončení ověření a přijetí přihlašovací ID uživatele je považován za registrovaný a je mu udělen přístup k serveru. Pro každou databázi, k jejímuž objektům hodlá přistupovat, uživatelský účet(přihlášení) je spojeno s uživatelem (uživatelem) konkrétní databáze, což se provádí postupem:

sp_adduser [@loginame=] "účet" [, [@name_in_db=] "uživatelské jméno"] [, [@grpname=] "název role"]

Uložená procedura vám umožňuje namapovat účet Windows NT na uživatelské jméno:

sp_grantdbaccess [@login=] 'účet' [, [@name_in_db=]'uživatelské jméno']

Uživatel, který vytvoří objekt v databázi (tabulka, uložená procedura, pohled), se stává jejím vlastníkem. Vlastník objektu(vlastník databázového objektu dbo) má všechna přístupová práva k objektu, který vytvořil. Aby mohl uživatel vytvořit objekt, vlastník databáze (dbo) musí uživateli udělit příslušná práva. Úplný název vytvářeného objektu obsahuje jméno uživatele, který jej vytvořil.

Vlastník objektu nemá speciální heslo ani zvláštní přístupová práva. Implicitně má plnou kontrolu, ale musí výslovně udělit přístup ostatním uživatelům.

SQL Server umožňuje převést vlastnictví z jednoho uživatele na druhého pomocí postupu:

sp_changeobjectowner [@objname=] 'object_name' [@newowner=] 'owner_name'

Role vám umožňuje kombinovat uživatele, kteří vykonávají stejné funkce, do jedné skupiny.

SQL Server implementuje dva typy standardních rolí: na úrovni serveru a na úrovni databáze. Při instalaci SQL Serveru jsou vytvořeny pevné role serveru (například sysadmin s právem vykonávat libovolné funkce SQL serveru) a pevné databázové role (například db_owner s plným přístupem k databázi nebo db_accessadmin s právem přidávat a smazat uživatele). Mezi pevné databázové role patří veřejná role, která má speciální účel, protože jejími členy jsou všichni uživatelé, kteří mají přístup k databázi.

Do libovolné role serveru můžete zahrnout jakýkoli účet SQL Server (přihlášení) nebo účet Windows NT.

Databázové role umožňují sloučit uživatele do jedné administrativní jednotky a pracovat s ní jako běžný uživatel. Přístupová práva k databázovým objektům můžete přiřadit konkrétní roli, která automaticky udělí všem členům této role stejná práva.

Role databáze může zahrnovat uživatele serveru SQL Server, role serveru SQL Server a uživatele systému Windows NT.

Různé akce ve vztahu k roli se provádějí pomocí speciálních postupů:

  • vytvoření nové role:

    sp_addrole [@rolename=] "role_name" [, [@ownername=] "owner_name"]

  • přidání uživatele do role:

    sp_addrolemember [@rolename=] "role_name", [@membername=] "user_name"

  • odebrání uživatele z role:

    sp_droprolemember [@rolename=] "název_role", [@membername=] "uživatelské_jméno"

  • odebrání role:

    sp_droprole [@rolename=] "název_role"

Řízení přístupu k datům

Definování oprávnění v jazykovém standardu

Každý DBMS musí podporovat mechanismus, který zajistí, že k databázi budou mít přístup pouze uživatelé, kteří mají příslušná oprávnění. Jazyk SQL obsahuje příkazy GRANT a REVOKE určené k ochraně tabulek v databázi. Ochranný mechanismus je založen na použití ID uživatelů, vlastnická práva a výsady jim udělené.

ID uživatele je běžný SQL identifikátor používaný k identifikaci uživatele databáze. Každý uživatel musí mít přiděleno své vlastní ID přidělené správcem databáze. Ze zřejmých bezpečnostních důvodů ID uživatele obvykle spojené s nějakým heslem. Každý příkaz SQL provedený DBMS se provádí jménem uživatele. ID uživatele určuje, na které databázové objekty může uživatel odkazovat a jaké operace s těmito objekty je oprávněn provádět.

Každý objekt vytvořený v prostředí SQL má svého vlastníka, kterým je zpočátku jediná osoba, která o existenci tohoto objektu ví a má právo s ním provádět jakékoli operace.

Privilegia neboli práva jsou akce, které má uživatel právo provádět ve vztahu k dané databázové tabulce nebo pohledu. Standard SQL definuje následující sadu oprávnění:

  • SELECT – právo výběru dat z tabulky;
  • INSERT – právo vkládat nové řádky do tabulky;
  • AKTUALIZACE – právo na změnu údajů v tabulce;
  • DELETE – právo mazat řádky z tabulky;
  • REFERENCES – právo odkazovat na sloupce uvedené tabulky v popisech požadavků na podporu integrity dat;
  • POUŽITÍ – právo používat domény, validace a znakové sady.

Oprávnění INSERT a UPDATE lze omezit na konkrétní sloupce v tabulce, v takovém případě smí uživatel pouze upravovat hodnoty těchto sloupců. Podobně lze oprávnění REFERENCES použít výhradně na jednotlivé sloupce tabulky, což umožňuje použití jejich názvů v prohlášeních integrity dat, jako jsou klauzule CHECK a FOREIGN KEY zahrnuté v definici jiných tabulek, zatímco použití jiných sloupců bude zakázáno. pro podobné účely.

Když uživatel vytvoří novou tabulku pomocí příkazu CREATE TABLE, automaticky se stane jejím vlastníkem a získá nad ní celou sadu oprávnění, která ostatní uživatelé původně nemají. Aby jim vlastník udělil přístup, musí výslovně udělit potřebná práva, což se provádí pomocí příkazu GRANT.

Vytvořením pohledu pomocí příkazu CREATE VIEW se uživatel automaticky stává vlastníkem tohoto pohledu a má také plná práva. K vytvoření pohledu potřebuje uživatel pouze oprávnění SELECT pro všechny tabulky v něm obsažené a oprávnění REFERENCES pro všechny sloupce uvedené v definici tohoto pohledu. Uživatel obdrží oprávnění INSERT, UPDATE a DELETE ve vytvořeném pohledu pouze v případě, že má odpovídající oprávnění pro všechny tabulky použité v pohledu.

Udělení oprávnění uživatelům

Příkaz GRANT se používá pro udělování privilegií proti pojmenovaným databázovým objektům určeným uživatelům. Obvykle jej používá majitel stolu poskytování přístupu ostatním uživatelům. Prohlášení GRANT má následující formát:

<предоставление_привилегий>::= GRANT (<привилегия>[,...n] | VŠECHNA PRIVILEGIS) ON object_name TO (<идентификатор_пользователя>[,...n]| VEŘEJNÉ) [S MOŽNOSTÍ GRANTU]

Parametr<привилегия>představuje:

<привилегия>::= (VYBRAT | DELETE | INSERT [(název_sloupce[,...n])] | AKTUALIZOVAT [(název_sloupce[,...n])]) | ODKAZY [(název_sloupce[,...n])] | POUŽÍVÁNÍ)

Pro jednoduchost můžete v příkazu GRANT zadat klíčové slovo ALL PRIVILEGES, které zadanému uživateli udělí všechna existující oprávnění, aniž by je musel vypisovat. Kromě toho může toto prohlášení obsahovat klíčové slovo PUBLIC, což znamená udělení přístupu uvedeného typu nejen všem stávajícím uživatelům, ale i všem, kteří budou v databázi následně definováni.

Parametr název_objektu lze použít jako název databázové tabulky, pohledu, domény, znakové sady, kontroly.

S WITH GRANT OPTION mají uživatelé uvedení v prohlášení GRANT právo převést vše pokud je ve vztahu k uvedenému předmětu privilegia na jiné uživatele, kteří zase budou obdařeni přesně stejným právem převádět své pravomoci. Pokud tento parametr není uveden, příjemce oprávnění nebude moci přenést svá práva na jiné uživatele. Vlastník objektu tak může jasně kontrolovat, komu byl udělen přístup k objektu a jaká oprávnění jsou mu udělena.

Odebrání oprávnění udělených uživatelům

V jazyce SQL pro odnětí privilegií, pokud uživatelům prostřednictvím příkazu GRANT se používá příkaz REVOKE. Pomocí tohoto operátoru lze zrušit všechna nebo některá dříve získaná oprávnění zadaného uživatele. Příkaz REVOKE má následující formát:

<отмена_привилегий>::= ZRUŠIT (<привилегия>[,...n] | VŠECHNA PRIVILEGIS) ON object_name FROM (<идентификатор_пользователя>[,...n]| VEŘEJNOST)

Klíčové slovo ALL PRIVILEGES znamená, že všechna oprávnění pro zadaného uživatele jsou odebrána. pokud byl dříve zadán uživatelem, který zadal tento operátor. Volitelná klauzule GRANT OPTION FOR umožňuje přepsat všechna oprávnění předaná v původním příkazu GRANT příkazem WITH GRANT OPTION, bez ohledu na samotná oprávnění.

Je-li v příkazu uvedeno klíčové slovo RESTRICT, může příkaz REVOKE uspět pouze v případě, že oprávnění uvedená v příkazu nezpůsobí u jiných uživatelů takzvaná "zachovaná" oprávnění. Volba CASCADE odebere všechna oprávnění, která by jinak mohla zůstat ostatním uživatelům.

"Zachovaná" oprávnění jsou ta, která si podrží uživatel, kterému byla jednou udělena pomocí parametru GRANT OPTION.

Vzhledem k tomu, že k vytvoření určitých objektů je nezbytná přítomnost oprávnění, spolu s jeho odstraněním můžete ztratit právo, jehož použitím byl tento nebo ten objekt vytvořen (takové objekty se nazývají „opuštěné“). Pokud příkaz REVOKE může vést k opuštěným objektům (jako jsou pohledy), právo bude zrušeno, pokud není zadáno klíčové slovo CASCADE. Pokud je v příkazu přítomno klíčové slovo CASCADE, budou příkazy DROP automaticky vydány pro všechny odstraněné objekty, ke kterým dojde během provádění původního příkazu REVOKE.

Oprávnění udělená zadanému uživateli jinými uživateli nemohou být ovlivněna příkazem REVOKE. Pokud tedy jiný uživatel také udělil danému uživateli odnímatelné oprávnění, zadaný uživatel si zachová právo přístupu k odpovídající tabulce. Předpokládejme například, že uživatel A a uživatel E měli oprávnění INSERT v tabulce Produkt. Uživatel A udělil uživateli B oprávnění INSERT pro tabulku Produkt s uvedením WITH GRANT OPTION (krok 1). Uživatel B převedl toto oprávnění na uživatele C (krok 2). Poté jej uživatel C přijal od uživatele E (krok 3). Dále uživatel C udělil uvedené oprávnění uživateli D (krok 4). Když uživatel A ruší výsadu INSERT pro uživatele B, nelze jej vrátit zpět pro uživatele C, protože jej již obdržel od uživatele E. Pokud by uživatel E toto oprávnění uživateli C neudělil, pak by odebrání oprávnění uživatele B mělo za následek kaskádové odebírání oprávnění pro uživatele C a D (viz Tabulka 17.1).

Implementace přístupových práv k databázovým objektům v prostředí MS SQL Server

Kategorie práv v prostředí MS SQL Server

Při připojování k SQL Serveru jsou všechny možné akce uživatelů určeny právy (privilegii, oprávnění) udělenými jejich účtu, skupině nebo roli, do které patří.

Práva lze rozdělit do tří kategorií:

  • práva na přístup k objektům;
  • práva vykonávat příkazy;
  • implicitní práva.
Tabulka 17.1.
Uživatel AUživatel BUživatel CUživatel DUživatel E
UDĚLEJTE VLOŽKU NA VÝROBEK DO B S MOŽNOSTÍ UDĚLENÍ Získání práva
Získání práv od B. Získání práva od E UDĚLEJTE VLOŽKU NA VÝROBEK DO C S MOŽNOSTÍ UDĚLENÍ
UDĚLEJTE VLOŽKU NA PRODUKT DO D Získání práva
ZRUŠTE VLOŽKU NA produktu DO KASKÁDY B Zrušení právVýhrada právVýhrada právVýhrada práv

Práce s daty a provádění uložených procedur vyžaduje tzv. přístupovou třídu práva na přístup k objektům databází. Objekty znamenají tabulky, sloupce tabulek, pohledy, uložené procedury.

Různé objekty mají různé sady přístupových práv:

  • SELECT, INSERT, UPDATE, DELETE, REFERENCES – pro tabulku nebo pohled;
  • SELECT , UPDATE – pro konkrétní sloupec tabulky nebo pohledu;
  • EXECUTE – pro uložené procedury a funkce.

Právo INSERT umožňuje vkládat nové řádky do tabulky nebo pohledu a je uděleno pouze na úrovni tabulky nebo pohledu; nelze jej vydat na úrovni sloupců.

Oprávnění UPDATE se vydává buď na úrovni tabulky, která umožňuje měnit všechny údaje v ní, nebo na úrovni jednotlivého sloupce, což umožňuje měnit údaje pouze v jeho mezích.

Právo DELETE umožňuje odstranit řádky z tabulky nebo pohledu, je uděleno pouze na úrovni tabulky nebo pohledu, ale nelze jej udělit na úrovni sloupce.

Právo SELECT umožňuje výběr dat a může být vydáváno jak na úrovni tabulky, tak na úrovni jednotlivého sloupce.

Právo REFERENCES poskytuje možnost odkazovat na určený objekt. Při použití na tabulky umožňuje vytváření cizích klíčů, které odkazují na primární klíč nebo jedinečný sloupec dané tabulky.

Udělení práv

Pro management oprávnění uživatele k přístupu k objektům používá se databázový příkaz:

<предоставление_привилегий>::= GRANT ( VŠECHNA [ PRIVILEGIA] |<привилегия>[,...n]) ( [(název_sloupce [,...n])] ZAPNUTO (název_tabulky | název_zobrazení) | ZAPNUTO (název_tabulky | název_zobrazení ) ([název_sloupce [,...n])] | ZAPNUTO (název_uloženého_procedury |. externí_název_procedury)) TO (uživatelské_jméno | název_skupiny | název_role) [,...n]

Parametr<привилегия>

<привилегия>::= (VYBRAT | ODSTRANIT | VLOŽIT | AKTUALIZOVAT | PROVÉST | REFERENCE )

Volba S MOŽNOSTÍ UDĚLENÍ pomůže uživateli, kterému udělujete práva, udělit přístupová práva k objektu dalším uživatelům. Jeho použití vyžaduje zvláštní péči, protože majitel nad ním ztrácí kontrolu udělování práv pro přístup k dalším uživatelům. Nejlepší je omezit okruh uživatelů, kteří tuto možnost mají spravovat přiřazení práv.

Volitelný parametr AS (název_skupiny | název_role) umožňuje určit účast uživatele v roli, která poskytuje udělování práv ostatní uživatelé.

Jediné přístupové právo, které lze udělit uložené proceduře, je právo ji spustit (EXECUTE). Kromě toho může vlastník uložené procedury samozřejmě prohlížet a měnit její kód.

Můžete funkci udělit právo ji provést a také udělit právo REFERENCE, což umožní přidružit funkci k objektům, na které odkazuje. Taková vazba zabrání změnám ve struktuře objektů, které by mohly vést k narušení funkce.

Oprávnění k provádění příkazů SQL

Tato třída práv řídí schopnost vytvářet objekty v databázi, databázi samotnou a provádět procedury zálohování. K poskytnutí můžete použít následující příkaz práva vykonávat příkazy SQL:

<предоставление_права_выполнения>::= GRANT (VŠECHNY |<команда>

Parametr<команда>je následující struktura:

<команда>::= (VYTVOŘIT DATABÁZI | VYTVOŘIT TABULKU | VYTVOŘIT ZOBRAZENÍ | VYTVOŘIT VÝCHOZÍ | VYTVOŘIT PRAVIDLO | VYTVOŘIT POSTUP | ZÁLOHU DATABÁZE | PROTOKOL ZÁLOHY | VŠE )

Můžete tedy udělit právo na vytvoření databáze, tabulky, pohledu, výchozího nastavení, pravidla, uložené procedury, zálohy databáze a protokolu transakcí nebo udělit všechna výše uvedená práva najednou.

Implicitní práva

Některé akce nevyžadují výslovné povolení a jsou k dispozici ve výchozím nastavení. Tyto akce mohou provádět pouze členové rolí serveru nebo vlastníci objektů v databázi.

Implicitní práva nejsou udělována přímo uživateli, jsou udělena pouze za určitých okolností. Uživatel se například může stát vlastníkem databázového objektu pouze v případě, že si objekt sám vytvoří nebo na něj převede vlastnictví svého objektu někdo jiný. Vlastník objektu tak automaticky získá práva k provádění jakýchkoli akcí s objektem, včetně udělení přístupu k objektu dalším uživatelům. Tato práva nejsou nikde specifikována, pouze fakt, že objekt vlastníte, vám umožňuje provádět jakékoli akce.

Odepření přístupu

Zabezpečení serveru SQL je hierarchické, takže databázové role zahrnují účty a skupiny systému Windows NT, uživatele a role serveru SQL Server. Uživatel se zase může účastnit několika rolí a současně mít různá přístupová práva pro různé role. Když má jedna z uživatelských rolí oprávnění k přístupu k datům, má uživatel automaticky stejná práva. Pokud však vznikne potřeba, může být uživateli odepřen přístup k datům nebo příkazům, poté jsou všechna přístupová oprávnění udělená na jakékoli úrovni hierarchie odvolána. To zajišťuje, že přístup zůstane odepřen bez ohledu na oprávnění udělená na vyšší úrovni.

Pro odepření přístupu

<запрещение_доступа>::= ODMÍTAT (VŠE | |<привилегия>[,...n]) ( [(název_sloupce [,...n])] ZAPNUTO (název_tabulky | název_zobrazení) | ZAPNUTO (název_tabulky | název_zobrazení ) [název_sloupce [,...n])] | ON (uložený_název_procedury | externí_název_procedury)) TO (uživatelské_jméno | název_skupiny | název_role) [,...n]

Parametr CASCADE umožňuje odejmout práva nejen konkrétnímu uživateli, ale také všem, kterým podobná práva udělil.

Chcete-li zakázat provádění příkazů SQL, použijte následující operátor:

<запрещение_выполнения>::= ODMÍTAT (VŠE |<команда>[,...n]) TO (uživatelské jméno | název skupiny | název role) [,...n]

Implicitní odmítnutí přístupu

Implicitní odmítnutí jako odepření přístupu s tím rozdílem, že působí pouze na úrovni, na které je definován. Pokud je uživatel na určité úrovni přístup je implicitně odepřen, stále jej může získat na jiné úrovni hierarchie prostřednictvím členství v roli, která má práva k prohlížení. Ve výchozím nastavení je přístup k uživatelským datům implicitně odepřen. Pro implicitní odmítnutí přístupu Příkaz používaný pro databázové objekty je:

<неявное_отклонение_доступа>::= ZRUŠIT (VŠECHNY [ PRIVILEGIA]| |<привилегия>[,...n]) ( [(název_sloupce [,...n])] ZAPNUTO (název_tabulky | název_zobrazení) | ZAPNUTO (název_tabulky | název_zobrazení ) [název_sloupce [,...n])] | ON (název_uloženého_procedury | externí_název_procedury)) TO | FROM (uživatelské jméno | název skupiny | název role)[,...n]

Pro implicitní odchylkaoprávnění k provádění příkazů Použitý SQL příkaz je následující:

<неявное_отклонение_разрешения>::= ZRUŠIT (VŠE |<команда>[,...n]) FROM (uživatelské jméno | název skupiny | název role)[,...n]

Význam parametrů je podobný jako u parametrů příkazů GRANT a DENY. Parametr GRANT OPTION FOR se používá, když je nutné odejmout právo, pokud s parametrem WITH GRANT OPTION příkazu GRANT. Uživatel si zachová oprávnění k přístupu k objektu, ale ztratí možnost udělovat toto oprávnění ostatním uživatelům.

Konflikty přístupu

oprávnění, pokud role nebo skupiny jsou zděděny jejich členy. I když uživatel může přístup udělen Prostřednictvím členství v jedné roli může být roli na jiné úrovni zakázáno jednat s objektem. V tomto případě vzniká konflikt přístupu.

Při vyřešení konflikty přístupu SQL Server se řídí následujícím principem: oprávnění k udělení přístupu má nejnižší prioritu a odepření přístupu- nejvyšší. To znamená, že k datům lze přistupovat pouze explicitně. poskytování v nepřítomnosti odepření přístupu na jakékoli jiné úrovni bezpečnostní hierarchie. Pokud není přístup výslovně udělen, uživatel nebude moci s daty pracovat.

Příklad 17.1. Vytvořte novou databázi, nového uživatele pro tuto databázi a dejte mu všechna práva.

Vytvoření nové -- databáze CREATE DATABASE basa_user -- vytvoření nového uživatele s -- jménem UserA a heslem '123' -- výchozí databází pro -- uživatele UserA bude databáze -- s názvem basa_user. sp_addlogin "UserA","123","basa_user" -- přejít do databáze basa_user USE basa_user -- přidat do aktuální databáze -- (basa_user) uživatele s názvem -- userA sp_adduser "UserA" -- poskytnout uživateli userA -- v databázi basa_user všechna práva GRANT ALL TO UserA Příklad 17.1.

Vytvoření nové databáze, nového uživatele pro tuto databázi, udělení mu všech práv. Příklad 17.2.

Použití rolí.

Vytvořme roli stud a zahrneme do této role dva uživatele user1 a user2:

sp_addrole "stud" sp_addrolemember "stud","user1" sp_addrolemember "stud","user2"

Udělme práva roli stud a přímo uživateli user2:

GRANT SELECT, INSERT ON Product TO stud GRANT SELECT, INSERT ON Product TO user2

Po provedení těchto příkazů mohou uživatelé user1 a user2 spustit příkazy pro výběr a přidání záznamu do tabulky Produkt.

Pozastavme právo vkládat do tabulky Produkt pro roli hřebce:

ZRUŠIT VLOŽKU NA produktu NA čep

Po provedení předchozího příkazu uživatel1 ztratí právo vložit záznam a uživatel2 si toto právo ponechá, protože právo vložení je mu výslovně uděleno.

Proveďme příkaz

DENY INSERT ON Product TO stud.

Po provedení tohoto příkazu jsou oba uživatelé zbaveni práva vkládat do tabulky Produkt.

Přístupová práva (oprávnění) pro práci s geodatabází se konfigurují přiřazením předem nakonfigurovaných rolí uživatelům a skupinám. Účet nebo skupina je v tomto případě účet Windows, který identifikuje uživatele, a role řídí oprávnění pro akce, které může uživatel provádět.

  • Předkonfigurované role a možná přístupová práva jsou uvedeny níže:
  • Žádný – ke geodatabázi nebo datové sadě geodatabáze nebyl udělen žádný přístup.
  • Pouze pro čtení – Uživatel může prohlížet a vybírat data.
  • Čtení/zápis – Uživatel může číst, zapisovat a vytvářet nové datové sady v geodatabázi nebo může číst a zapisovat do existujících datových sad.
  • Správce serveru – uživatel, který spravuje databázový server.

Oprávnění jsou kumulativní. Pokud jste správcem na úrovni databázového serveru, jste také správcem geodatabáze. Pokud jste správcem geodatabáze, máte automaticky oprávnění ke čtení/zápisu na všechny datové sady v dané geodatabázi.

Každá úroveň, na které lze přidělovat oprávnění, je popsána níže.

Přístupová práva na úrovni databázového serveru

Oprávnění na úrovni databázového serveru lze konfigurovat pouze pro administrátora serveru; uživatel je nebo není správcem serveru.

Během procesu po instalaci, který konfiguruje instanci SQL Server Express pro ukládání geodatabází, je na databázový server přidán účet Windows. V tomto okamžiku je účtu přiřazena role správce serveru. Oprávnění databázového serveru pak lze získat z kontextové nabídky databázového serveru v ArcGIS for Desktop.

Správce serveru může provádět následující úkoly:

  • Přidat a odebrat uživatele databázového serveru.
  • Správa geodatabází a nastavení zabezpečení.
  • Vytvářejte a mažte geodatabáze.
  • Připojte a odeberte geodatabáze.
  • Zálohujte a obnovujte geodatabáze.
  • Aktualizace geodatabází.
  • Komprimujte geodatabáze (Compress).
  • Aktualizujte statistiky a indexy v geodatabázi.
  • Zmenšit geodatabázi.
  • Spusťte, zastavte a pozastavte databázový server.

Obvykle máte jednoho administrátora databázového serveru.

Následuje příklad dialogového okna Oprávnění pro databázové servery. Účtu ROCKETJAY\har byla přidělena role správce serveru.

Oprávnění na úrovni geodatabáze

Oprávnění na úrovni geodatabáze se přidělují pomocí kontextové nabídky geodatabáze při přístupu přes složku Databázové servery ve stromu katalogu.

Přístupová práva na této úrovni budou zpočátku udělena správci serveru a budou spravována na základě rolí. Možné role, které lze uživateli přiřadit:

  • Pouze pro čtení – Toto oprávnění umožňuje uživateli vybrat data z libovolné tabulky v geodatabázi.
  • Čtení/zápis – Uživatelé s oprávněním ke čtení/zápisu mohou vybírat a upravovat všechna existující data v geodatabázi a mohou vytvářet nové prvky geodatabáze, jako jsou třídy prvků. Pokud bylo uživateli uděleno oprávnění ke čtení/zápisu na úrovni geodatabáze, nebudete moci změnit jeho oprávnění na úrovni datové sady, budou automaticky nastavena na čtení/zápis.
  • Správce – uživatelé, kterým je přiřazena role Správce, jsou pouze správci dané geodatabáze. To znamená, že uživatel má oprávnění ke čtení/zápisu na všechny datové sady a geodatabázi a tato práva nelze na úrovni datové sady odvolat. Nebudete například moci otevřít kartu Oprávnění na úrovni datové sady a vybrat oprávnění Pouze pro čtení u třídy nastavené pro daného uživatele.

    Kromě přístupu ke čtení/zápisu k datovým sadám mohou správci geodatabází provádět administrativní operace na geodatabázích, včetně vytváření záloh, komprimace geodatabází, aktualizace geodatabází a správy uživatelských práv geodatabází. (Uživatelé musí existovat na databázovém serveru; administrátoři geodatabáze nemohou přidávat nové uživatele na databázový server.)

  • Další možností pro uživatelskou roli je Žádná. V tomto případě uživatel nebude mít práva pro přístup k datům na úrovni geodatabáze; uživateli však může být udělena oprávnění pouze ke čtení nebo ke čtení/zápisu pro konkrétní datové sady, jak je popsáno v části Oprávnění datové sady. Žádná je výchozí úroveň oprávnění pro uživatele, kteří jsou přidáni na databázový server.

V následujícím příkladu dialogového okna Oprávnění geodatabáze byl do role Čtení/zápis pro historickou geodatabázi přidán účet ROCKETAY\pllama.

Další informace o správcích serverů a geodatabází naleznete v tématu Správci databázových serverů.

Oprávnění na úrovni datové sady

Oprávnění datové sady jsou k dispozici prostřednictvím příkazu Přístupová práva (privilegia) v kontextové nabídce datové sady, která otevře dialogové okno Oprávnění. Možná oprávnění k datové sadě, která jsou dostupná prostřednictvím dialogového okna Oprávnění na úrovni sady dat, jsou Pouze pro čtení, Čtení/zápis a Žádné.

Uživatel nemusí mít oprávnění na úrovni geodatabáze (jeho oprávnění budou nastavena na Žádná), ale mohou mu být udělena oprávnění pro čtení/zápis nebo pouze pro čtení ke konkrétním datovým sadám v geodatabázi. Můžete například poskytnout uživatelům analytiků přístup pouze pro čtení k datům v geodatabázi, ale udělit jim přístup pro zápis/čtení k jedné třídě prvků v geodatabázi.

Když uživatel vytvoří sadu dat, jako je tabulka, tento uživatel se stane jeho vlastníkem a tabulka je považována za součást schématu uživatele. Uživatelská oprávnění pro datové sady v geodatabázi může konfigurovat pouze vlastník datové sady.

Pokud správce serveru vytvoří sady dat, budou je vlastnit uživatel dbo a budou uloženy ve schématu dbo. Správce serveru tedy může udělit oprávnění libovolné sadě tříd ve schématu dbo, ale pouze objektům ve schématu dbo. Jinými slovy, administrátor serveru nebude moci udělovat oprávnění k datům vlastněným neadministrátory.

Následuje příklad dialogového okna Oprávnění pro datovou sadu firestations:


Další informace o procesu přidělování rolí uživatelům a udělování a odebírání oprávnění naleznete v části

Přidání uživatelů databáze

Zdroje databáze

Uživatel se může přihlásit do databázového systému pomocí uživatelského účtu Windows nebo přihlášení k SQL Serveru. Pro následný přístup a práci s konkrétní databází musí mít uživatel také uživatelský účet databáze. Chcete-li pracovat s každou jednotlivou databází, musíte mít uživatelský účet speciálně pro tuto databázi. Uživatelský účet databáze lze namapovat na existující uživatelský účet Windows, skupinu Windows (ve které má uživatel členství), přihlašovací jméno nebo roli.

Uživatele databáze můžete spravovat pomocí Management Studio nebo příkazů Transact-SQL. Obě tyto metody jsou diskutovány v následujících podkapitolách.

Správa uživatelů databáze pomocí Management Studio

Chcete-li přidat uživatele databáze pomocí Management Studio, rozbalte uzel serveru v okně Průzkumník objektů a v něm složku "Databáze" a v této složce rozbalte požadovaný uzel databáze a v něm složku "Zabezpečení". Klepněte pravým tlačítkem myši na složku Uživatelé a z kontextové nabídky vyberte Nový uživatel. Otevře se dialogové okno Uživatel databáze - Nový, ve kterém musíte zadat Uživatelské jméno a vybrat příslušné Přihlašovací jméno:

Zde můžete také vybrat výchozí schéma pro tohoto uživatele.

Správa zabezpečení databáze pomocí příkazů Transact-SQL

Chcete-li přidat uživatele do aktuální databáze, použijte instrukce CREATE USER. Syntaxe této instrukce vypadá takto:

CREATE USER uživatelské_jméno Konvence syntaxe

Parametr jméno_uživatele určuje jméno, kterým je uživatel v databázi identifikován, a parametr login určuje přihlašovací jméno, pro které je tento uživatel vytvořen. Parametry cert_name a key_name určují odpovídající certifikát a asymetrický klíč. Konečně v parametru S DEFAULT_SCHEMA Určuje první schéma, se kterým databázový server začne hledat názvy objektů pro daného uživatele databáze.

Použití příkazu CREATE USER je znázorněno v příkladu níže:

POUŽÍVEJTE SampleDb; VYTVOŘIT UŽIVATELE Vasya PRO PŘIHLÁŠENÍ Vasya; VYTVOŘIT UŽIVATELE Alexe PRO PŘIHLÁŠENÍ S DEFAULT_SCHEMA = poco;

Chcete-li úspěšně spustit druhou instrukci na vašem počítači, musíte nejprve vytvořit účet Windows pro uživatele Alexandr a zadat název vašeho serveru namísto domény (serveru) ProfessorWeb.

V tomto příkladu první příkaz CREATE USER vytvoří uživatele databáze Vasya pro uživatele Vasya účtu Windows. Výchozí schéma pro uživatele Vasya bude dbo, protože parametr DEFAULT_SCHEMA nemá zadanou žádnou hodnotu. Druhý příkaz CREATE USER vytvoří nového uživatele databáze Alex. Výchozí schéma pro tohoto uživatele bude poco. (Parametr DEFAULT_SCHEMA lze nastavit na schéma, které aktuálně v databázi neexistuje.)

Každá databáze má své specifické uživatele. Proto musí být příkaz CREATE USER vydán pro každou databázi, pro kterou musí existovat uživatelský účet. Navíc pro danou databázi může mít přihlášení k SQL Serveru pouze jednoho uživatele databáze.

Pomocí návodu ZMĚNIT UŽIVATELE můžete změnit uživatelské jméno databáze, změnit výchozí schéma uživatele nebo přepsat uživatele jiným přihlašovacím jménem. Podobně jako u příkazu CREATE USER lze uživateli před jeho vytvořením přiřadit výchozí schéma.

Chcete-li odebrat uživatele z aktuální databáze, použijte příkaz DROP USER. Uživatele, který je vlastníkem chráněných objektů (databázových objektů), nelze smazat.

Výchozí schémata databáze

Každá databáze v systému má následující výchozí schémata.

Podobných článků je poměrně hodně, ale tento jsem primárně psal pro sebe a zaměřil jsem se na poznámky, které popisují možné problémy. Doufám, že článek bude užitečný pro ostatní.
1. Nainstalujte platformu 1C
2. Nainstalujte MS SQL server 2008. Během instalace zadejte uživatele databáze. (Což je SA).

Po instalaci otevřete administrační panel pro podnikové servery 1C a uvidíte, že je prázdný.
Musíte vytvořit server: Otevřete kořenový adresář konzoly->Central 1C: Enterprise 8.2 servers. Klikněte na něj pravým tlačítkem a vyberte nový. V rozevírací nabídce vyberte Central Server 1C Enterprise 8.2. Otevře se před námi okno se 4 poli:
Protokol- protokol, přes který budou data přenášena
Jméno- název počítače v síti, na kterém je server umístěn
IP port - port, na kterém je server přístupný
Popis-popis. není nutné.

Poznámka:
Pokud byla platforma 1C nainstalována na počítači a poté byl počítač přejmenován, nebudete se k ní moci dostat, protože platforma 1C je velmi chytrá platforma a během instalace zaznamenává název počítače do určitých souborů, ale pak, když se název počítače změní, platforma se již nebude přepisovat Tyto soubory jsou potřebné pro provoz služby RAGENT 1C (lze najít ve spuštěných službách, přes administrační panel windows serveru). To vše naznačuje, že pro přejmenování těchto souborů musíte zastavit službu RAGENT. Samotné soubory jsou umístěny na následujících místech:
C:\Program Files (x86)\1cv82\srvinfo\srvribrg
C:\Program Files (x86)\1cv82\srvinfo\reg_1541\1CV8Reg
Tyto soubory otevřeme pomocí poznámkového bloku a ručně změníme minulý název stroje na současný. Uložte a spusťte RAGENT.

Vraťme se k nastavení:
Po vyplnění okna s poli klikněte na OK a pokud je vše provedeno správně, máme server pojmenovaný jménem stroje, na kterém se nachází.

Tak. Server běží a nyní potřebujeme vytvořit databázi na serveru MYSQL a připojit ji k serveru 1C. Existuje několik způsobů - zde popíšu ten nejjednodušší:
Na podnikovém serveru 1C otevřete náš nově vytvořený server kliknutím na + vedle názvu serveru a na položku „INFORMAČNÍ BÁZE“, klikněte pravým tlačítkem a vyberte Nový->Informační databáze
Otevře se před námi okno s následujícími poli:

Jméno-název naší databáze na serveru 1C (Zpravidla jej mnoho lidí píše stejně jako do pole databáze, aby nedošlo k záměně)
Popis-popis
Zabezpečené připojení- ve výchozím nastavení zakázáno. můžete to povolit, ale pak se zatížení serveru zvýší
Databázový server-pokud je server na stejném serveru, uveďte (místní) přesně takto v hranatých závorkách, pokud není na tomto serveru, uveďte ip serveru
Typ DBMS-Vyberte typ MS SQL
Databáze-název databáze na MS SQL serveru. Pokud databáze neexistuje, můžete zaškrtnout jedno z políček a bude vytvořena
Uživatel databázového serveru-Uvedeme buď uživatele, kterého jsme vytvořili při instalaci, nebo vytvoříme samostatného uživatele v MS SQL, přidělíme mu práva a zaregistrujeme ho zde.
Heslo uživatele databázového serveru-heslo
Povolit vydávání licencí serverem 1C Enterprise- vyberte ano
Země-Vyberte zemi
Posun data-nastavit na 0
Zaškrtávací políčko „Vytvořit databázi v případě nepřítomnosti“-stejné zaškrtávací políčko pro vytvoření databáze, pokud neexistuje
Zaškrtávací políčko "Nastavit blokování naplánovaných úloh"- nezaškrtávejte políčko

Klikněte na OK a uvidíte, že servery jsou nakonfigurovány a na záložce „Informační báze“ se pod názvem, který jsme jí dali, objeví informační báze.

Chcete-li nastavit zálohování, musíme otevřít Microsoft SQL MANAGEMENT STUDIO.
Zadejte své přihlašovací údaje a připojte se k serveru.
Před námi je administrativní konzole. V Průzkumník objektů otevřete kartu Řízení a v tom vidíme Plány údržby. Zde vytvoříme zálohu, kterou potřebujeme. Jako obvykle klikněte pravým tlačítkem Plány údržby->nový plán údržby. Karta dílčího plánu se objeví v hlavním okně a pod Průzkumník objektů objeví se další okno ToolBox ve kterém je vnořeno Úkoly plánů údržby. V něm si vybereme Úloha zálohování databáze kliknutím na něj 2x. Přenese se do hlavního okna. Klikneme na něj 2x a před námi se objeví okno, opět s poli, kde si můžeme vybrat, které Zálohování provést, jakou základnu Zálohování použít a kam ji uložit. Po dokončení nastavení klikněte na OK.

Poznámka:
Při ukládání Back Up do nějaké síťové složky (mimochodem budete muset cestu zaregistrovat ručně, protože okno výběru adresáře vidí pouze místní zdroje), sledovat přístupová práva a zároveň sledovat, jakou autentizaci máte mít na serveru MySql, protože pokud není autentizace nastavena na účty Windows, ale pro interního uživatele DBMS a pokud máte zapnutý AD server, tak BackUp při pokusu o spuštění vyhodí chybu, protože to udělá jménem interního uživatele DBMS a AD ho nepustí nikam kromě lokálního počítače.

Poté, co nakonfigurujete cestu, základnu a typ zálohování, musíte nakonfigurovat plán. Chcete-li to provést, v hlavním okně nad vámi vytvořenou úlohou je znak Podplán. Na konci nápisu (vpravo) je ikona kalendáře. Kliknutím na něj se dostanete do nastavení rozvrhu. Zaškrtnutím políček dnů a nastavením času nastavíte plán. Dvojitým kliknutím na pole tzv Podplán můžete změnit název úkolu. Po konfiguraci všeho přejděte na Soubor-> Uložit vše. Po uložení se v plánech údržby objeví úkol s vaším jménem, ​​který jste dali BackUp.

Po dokončení nastavení nezapomeňte zkontrolovat provoz. Chcete-li to provést, klepněte pravým tlačítkem myši na vytvořenou úlohu a spusťte Exicute.

Poznámka:
Pokud Exicute běží s chybou, přečtěte si chyby, které vám Studio zobrazí, a nejprve zkontrolujte, zda běží SQL server agent. Je to on, kdo plní úkoly a funkce Exicute se na něj obrací, aby úkoly splnil. Pokud neběží, pokus o provedení selže. Chcete-li zjistit, zda agent pracuje nebo nepracuje ve Studiu v Průzkumníku objektů, přejděte na kartu SQL Server Agent. Pokud má ikona odrážky červený kroužek s křížkem, znamená to, že agent byl zastaven. Spustíte jej tak, že na něj kliknete pravým tlačítkem myši a z kontextové nabídky vyberete možnost START.

Anotace: Tato přednáška obsahuje materiály o správě přístupu k databázím SQL Serveru, konkrétně se týká správy uživatelů databáze, povolení hostujícího uživatele, vytváření databázových rolí, udělování oprávnění k databázi a přidávání databázového uživatele.

Samotné poskytnutí přístupu k instanci SQL Serveru nebude stačit pro aplikaci, která potřebuje přístup k datům. Po udělení přístupu k instanci serveru SQL Server musíte udělit přístup ke konkrétním databázím. Přístup k databázím je zajištěn přidáním uživatelů databáze a přiřazením přihlašovacích údajů uživatelům databáze. Každé přihlášení je spojeno s uživatelem databáze pro každou databázi, ke které toto přihlášení potřebuje přístup. Každý uživatel databáze je mapován pouze na jedno přihlášení, s výjimkou uživatele databáze dbo.

Poznámka. V předchozích verzích SQL Server jste mohli použít systémovou uloženou proceduru sp_addalias k mapování více přihlášení na jednoho uživatele databáze. To lze také provést v SQL Server 2005. Tato funkce se však nedoporučuje, protože je zastaralá a v budoucích verzích programu může být odebrána.

Poskytování přístupu k databázím

Uživatelé databáze jsou účastníci na úrovni databáze. Všechna přihlášení, s výjimkou role serveru sysadmin, musí být mapována na uživatele, kteří jsou zase mapováni na databázi, ke které potřebují přístup. Členové role správce systému mapováno na uživatele dbo ve všech databázích serveru.

Přidání uživatele databáze

Uživatele databáze můžete přidat pomocí příkazu CREATE USER. Následující příklad kódu Transact-SQL vytvoří přihlašovací jméno Peter a jeho přidruženého uživatele v databázi Adventure Works:

  • Vytvořte si přihlašovací jméno Petr

    VYTVOŘIT PŘIHLÁŠENÍ Peter WITH HESLO="Tyu87IOR0";

  • POUŽÍVEJTE AdventureWorks; JÍT

  • Přidáme databázového uživatele Peter, který je namapován na přihlášení Peter v databázi AdventureWorks.

    VYTVOŘIT UŽIVATELE Peter PRO PŘIHLÁŠENÍ Peter;

Správa uživatelů databáze

Zda má aktuální přihlášení přístup k databázi, můžete zkontrolovat pomocí následujícího příkazu:

SELECT HAS_DBACCESS("AdventureWorks");

Chcete-li získat informace o uživatelích databáze, můžete použít pohled katalogu sys.database_principals.

Pokud potřebujete dočasně zakázat přístup uživatele k databázi, můžete tomuto uživateli zrušit oprávnění CONNECT. Následující příklad ruší oprávnění CONNECT pro uživatele Petr:

  • Změňte kontext připojení k databázi AdventureWorks.

    POUŽÍVEJTE AdventureWorks; JÍT

  • Zrušte oprávnění k připojení pro Petra v AdventureWorks.

    ZRUŠIT PŘIPOJENÍ K Petrovi;

Uživatele můžete z databáze odebrat pomocí příkazu DROP USER.

Varování. SQL Server 2005 neumožňuje odstranění uživatele, který je vlastníkem schématu databáze. Obvody jsou diskutovány dále v této přednášce.

Správa uživatelů, kteří ztratili kontakt se svými přihlašovacími údaji

Osamocená přihlášení jsou uživatelé databáze, kteří nejsou přidruženi k přihlášení v aktuální instanci SQL Server. V SQL Server 2005 může dojít k tomu, že uživatel nebude přidružen k přihlášení, pokud je s ním spojené přihlašovací jméno odstraněno. Chcete-li získat informace o takových uživatelích, můžete spustit následující kód:

  • Změňte kontext připojení k databázi AdventureWorks.

    POUŽÍVEJTE AdventureWorks; JÍT

  • Vygenerujte zprávu o všech uživatelích databáze, kteří ztratili své přihlašovací připojení

    EXECUTE sp_change_users_login @Action="Report";

SQL Server 2005 umožňuje vytvořit uživatele, který není spojen s přihlášením, pomocí klauzule WITHOUT LOGIN. Uživatelé vytvoření pomocí klauzule WITHOUT LOGIN nejsou považováni za osamocené přihlášené uživatele. Tato funkce může být velmi užitečná v situaci, kdy potřebujete změnit kontext provádění modulu. Kontext provádění je diskutován dále v této přednášce. Následující příklad vytvoří uživatele bez přiřazeného přihlášení.

  • Změňte kontext připojení k databázi AdventureWorks.

    POUŽÍVEJTE AdventureWorks; JÍT

  • Vytvořte databázového uživatele Paul v databázi AdventureWorks
  • aniž by to odpovídalo přihlášení v dané instanci SQL Server

    VYTVOŘIT UŽIVATELE Paul BEZ PŘIHLÁŠENÍ;

Povolit uživatele typu host

Když se přihlášení, které nemá namapovaného uživatele, pokusí připojit k databázi, SQL Server se pokusí připojit pomocí uživatele Guest. Uživatel Guest je ve výchozím nastavení vytvořen bez udělení oprávnění. Hosta můžete povolit tak, že mu udělíte oprávnění CONNECT, jak je znázorněno níže.

  • Změňte kontext připojení k databázi AdventureWorks.

    POUŽÍVEJTE AdventureWorks; JÍT

  • Udělujeme uživateli Guest přístup k databázi AdventureWorks.

    GRANT SPOJIT SE S hostem;

    Pečlivě zvažte, zda povolit uživatele typu guest, protože to vystavuje prostředí vaší databáze dalšímu riziku.

Udělení oprávnění k databázi

Po vytvoření uživatelů databáze musíte těmto uživatelům spravovat oprávnění. Toho lze dosáhnout přidáním uživatelů do databázových rolí nebo udělením podrobných oprávnění samotným uživatelům.

Vytváření databázových rolí

Databázové role jsou členy úrovně databází. Role databáze lze použít k přiřazení oprávnění databázová skupina uživatelů. V SQL Server 2005 je ve výchozím nastavení vytvořena sada databázových rolí. Tyto výchozí role jsou uvedeny v tabulce. 3.1.

Tabulka 3.1.
Výchozí databázové role Role databáze
"Popis db_accessadmin
Může řídit přístup k databázi db_backupoperator
Může provádět zálohování databáze db_datareader
Dokáže číst data z tabulek všech uživatelů db_datawriter
Může přidávat, mazat a aktualizovat data v tabulkách všech uživatelů db_ddladmin
Může provádět libovolné příkazy DDL v databázi db_denydatareader
Nelze číst žádná data v uživatelských tabulkách db_denydatawriter
Nelze přidávat, mazat ani aktualizovat žádná data v uživatelských tabulkách db_owner
Může provádět všechny činnosti konfigurace a údržby db_securityadmin
Může změnit členství v roli databáze a spravovat oprávnění veřejnost

Zvláštní role databáze. Všichni uživatelé patří do veřejné role. Uživatele z veřejné skupiny nelze odebrat.

  • Změňte kontext připojení k databázi AdventureWorks.

    POUŽÍVEJTE AdventureWorks; JÍT

  • Pokud chcete seskupit uživatele na základě konkrétních požadavků na oprávnění, můžete přidat databázové role. Následující příklad kódu vytvoří databázovou roli s názvem Auditoři a přidá do této nové role uživatele Peter.

    Vytvořte roli Auditoři v databázi AdventureWorks.

  • VYTVOŘIT ROLE Auditoři; JÍT

    Přidejte uživatele Peter do role Auditoři

EXECUTE sp_addrolemember "Auditors", "Peter";

Správa databázových rolí

  • Změňte kontext připojení k databázi AdventureWorks.

    POUŽÍVEJTE AdventureWorks; JÍT

  • Dotazem na systémovou funkci IS_MEMBER můžete zkontrolovat, zda aktuální uživatel patří do databázové role. V následujícím příkladu zkontrolujeme, zda aktuální uživatel patří do databázové role db_owner.


Nahoru