Řízení přístupu k databázím SQL Server. Vytvoření databázového uživatele pomocí Transact-SQL

Ahoj všichni! Nyní se podíváme na příklady vytváření a mazání uživatelů v Microsoft DBMS SQL Server jak pomocí příkazů Transact-SQL, tak pomocí Environment Management Studio.

Proces vytváření uživatelů v MS SQL Server zahrnuje dvě fáze:

  1. Vytvoření přihlášení na SQL Server. Tento název je vyžadován, aby se uživatel mohl připojit k instanci SQL Server;
  2. Vytvoření uživatele databáze. V v tomto případě již udělujeme uživatelská oprávnění k databázovým objektům.

Poznámka! Jak SQL server a pro svůj příklad použiji verzi Microsoft SQL Server 2012 Express. Na tomto SQL serveru byla vytvořena testovací databáze Test.

Vytvoření přihlášení na MS SQL Server

Než začnete vytvářet přihlášení k serveru SQL, musíte se rozhodnout pro metodu ověřování. Jsou dvě možnosti:

  1. Zkouška Autentičnost Windows – tehdy může přihlašovací jméno identifikovat uživatele jako účet Vstup do Windows nebo jako člen skupiny Windows (včetně doménových účty a skupiny);
  2. SQL Server Authentication. V tomto případě přihlášení existuje pouze v SQL Server.

Podívejme se na několik příkladů vytvoření přihlášení na SQL server. Nejprve to provedeme pomocí SQL Server Management Studio a poté pomocí Transact-SQL.

Vytvoření přihlášení pomocí SQL Server Management Studio

Spustíme Management Studio, poté v prohlížeči objektů najdeme položku „ Bezpečnost“, otevřete jej znaménkem plus, klikněte klikněte pravým tlačítkem klikněte na " Přihlášení"a vyberte položku" Vytvořit přihlášení».

Dále jako příklad vytvoříme testovací přihlášení s ověřováním SQL Server. Zadáme přihlašovací jméno, vytvoříme heslo a potvrdíme. Můžeme také zkontrolovat několik možností, jako je použití zásady hesel, výchozí databáze, výchozí jazyk a další.

Poté klikněte na tlačítko „ OK“, po kterém se vytvoří přihlašovací TestLogin. Výchozí křestní jméno přihlášení bude povoleno a bude mít práva role "veřejného" serveru.

Vytvoření přihlášení pomocí Transact-SQL

Chcete-li vytvořit přihlášení v Transact-SQL, musíte otevřít editor dotazů v Management Studio a spustit následující pokyny (dělá přesně to samé, co naše akce výše v grafické rozhraní Management Studio).

CREATE LOGIN WITH PASSWORD=N"Pa$$w0rd", DEFAULT_DATABASE=, DEFAULT_LANGUAGE=[ruština], CHECK_EXPIRATION=VYPNUTO, CHECK_POLICY=ZAPNUTO

Jinými slovy, k vytvoření přihlášení na SQL serveru se používá instrukce VYTVOŘIT PŘIHLÁŠENÍ.

Vytvoření přihlášení k serveru SQL pomocí ověřování systému Windows

Chcete-li vytvořit přihlášení Windows Authenticated, postupujte takto: SQL příkaz:

VYTVOŘIT PŘIHLÁŠENÍ Z WINDOWS S DEFAULT_DATABASE=, DEFAULT_LANGUAGE=[ruština];

  • JÍT
  • ComputerName\NameUser je název počítače\User Name;
  • Z WINDOWS – určuje, že bude použito ověřování Windows;
  • WITH DEFAULT_DATABASE= – výchozí databáze;

DEFAULT_LANGUAGE=[Ruština] – výchozí jazyk.

Zakázání a povolení přihlášení na MS SQL Server

V případě potřeby můžete dočasně zakázat přihlášení, abyste uživateli zablokovali přístup k serveru.

Zakázat ALTER LOGIN TestLogin DISABLE;

--Enable ALTER LOGIN TestLogin ENABLE;

Vytvoření databázového uživatele v MS SQL Server Po vytvoření přihlášení můžete přistoupit k vytvoření databázového uživatele, tzn. mapování uživatele na přihlášení. Vytvořme uživatele TestLogin také dvěma způsoby, tj. S

pomocí Managementu

Studio a jazyk T-SQL. Bezpečnost Vytvoření databázového uživatele pomocí Management Studio Otevřete Management Studio, najděte požadovanou databázi v prohlížeči objektů a otevřete ji se znaménkem plus. Poté také použijte znaménko plus k otevření položky “"a klikněte na složku" Uživatelé».

"klikněte pravým tlačítkem a vyberte" Vytvořte uživatele Dále zadejte uživatelské jméno a přihlašovací jméno, které odpovídá tomuto uživateli ( v mém případě jsou jména stejná).

), a také uveďte výchozí schéma ( pokud není zadáno, bude přiřazeno schéma dbo Okamžitě si také povšimněme, jakou roli bude mít databáze tohoto uživatele. Na stránce " Členství„Zaškrtl jsem políčko vedle role OK».

db_datareader

, tj. uživatel bude mít práva číst data z uživatelských tabulek. klikněte na " Vytvoření databázového uživatele pomocí Transact-SQL) a přiřadí mu roli db_datareader, tzn. dělá to samé, co jsme dělali o něco dříve v grafickém rozhraní Management Studio.

USE Test GO CREATE USER FOR LOGIN WITH DEFAULT_SCHEMA= GO ALTER ROLE ADD MEMBER ;

JÍT Tedy návod VYTVOŘIT UŽIVATELE

slouží k vytvoření uživatele databáze.

Odebrání databázového uživatele a přihlášení na MS SQL Server Chcete-li odstranit uživatele databáze, můžete napsat jednoduché SQL

například pokyny

DROP USER Testlogin; Nebo použít grafický nástroj Management Studio, tzn. v prohlížeči objektů, v požadovanou databázi data vybrat " Zabezpečení -> Uživatelé “ a klikněte pravým tlačítkem myši na uživatele, kterého chcete smazat, a vyberte „».

Poznámka! Vymazat

Uživatele, kteří vlastní zabezpečené objekty, nelze z databáze odebrat. Můžete také použít grafický nástroj Management Studio ( těch. „Zabezpečení -> Přihlášení“ klikněte pravým tlačítkem na název a poté klikněte na „Odstranit“

) a příkaz Transact-SQL, tj.

Poznámka! DROP LOGIN TestLogin; Nelze odstranit aktuální přihlášení ani přihlášení, které vlastní jakýkoli zabezpečený objekt na úrovni serveru nebo úlohu SQL Server Agent. Přihlášení také nelze smazat, pokud je momentálně

uživatel je připojen k systému. Je možné smazat přihlášení bez smazání přidruženého uživatele databáze, ale výsledkem budou uživatelé, kteří již nejsou přidruženi ke svým účtům.

To je vše, co doufám, materiál byl pro vás užitečný, ahoj! V tomto článku budu hovořit o tom, jak přidat nové nebo stávající stávající základny 8.3 (data na server 1C:Enterprise 8.1 pro jiné verze platformy - 8.2 A akce jsou podobné). Možnosti přidání informační základny budou zváženy jak z programu pro správu serveru 1C:Enterprise, tak prostřednictvím něj (v OS Rodina Windows ). Dotýká se také některých administrativních problémů. informační základny

v clusteru serverů 1C:Enterprise.

1. Přidání informační databáze ze spouštěcího okna 1C:Enterprise Vytvořme novou databázi na serveru 1C:Enterprise from typická konfigurace . Chcete-li to provést, spusťte „1C:Enterprise“ a ve spouštěcím okně klikněte na „ Přidat…

» přidat informační základnu. Spustí se průvodce přidáním informační báze, vyberte položku “ Vytvoření nové informační základny " nastavením příslušného přepínače a kliknutím "».

Další Na seznamu nainstalované šablony " nastavením příslušného přepínače a kliknutím "».

Zadáme název databáze, jak se zobrazí v seznamu infobází, určete typ umístění " Na serveru 1C:Enterprise"a klikněte" " nastavením příslušného přepínače a kliknutím "».

Na další stránka je nutné specifikovat parametry vytvářené informační báze, a to:

(V v tomto příkladu parametry byly vybrány v souladu s parametry instalace serveru 1C:Enterprise přijatými v článku)

  • Název clusteru serveru 1C:Enterprise- obvykle se shoduje s název sítě počítač, kde je nainstalován server 1C:Enterprise (centrální serverový cluster);
  • Jméno vytvořená základna ve shluku— název, pod kterým bude informační základna přístupná. Musí být jedinečný v rámci daného clusteru;
  • Zabezpečené připojení- ve výchozím nastavení zakázáno;
  • Typ DBMS, na kterém bude databáze uložena— v tomto příkladu MS SQL Server;
  • Název databázového serveru— zpravidla se skládá ze síťového názvu počítače, na kterém je nainstalován databázový server, a názvu instance serveru (pokud existuje), oddělených znakem „\“;
  • Název databáze na databázovém serveru— pro pohodlí se budeme držet pravidla, že název databáze se musí shodovat s názvem infobáze v clusteru. Navíc v případě použití MS SQL Server může být prvním znakem v názvu databáze pouze písmeno latinské abecedy nebo symbol „_“, další znaky mohou být pouze písmeno latinské abecedy, číslice popř. symboly „_“ a „&“, název musí být jedinečný v rámci dané instance databázového serveru a nesmí přesáhnout 63 znaků. Pokud již databáze na serveru existuje, použije se aktuální databáze, pokud ne, a příznak " Vytvořte databázi, pokud neexistuje“, na databázový server bude přidána nová databáze.
  • Uživatel databáze— uživatel DBMS, který se stane vlastníkem databáze na serveru v případě vytvoření nové databáze nebo který má práva pracovat s již existující;
  • Uživatelské heslo— heslo uživatele, jehož jménem bude databáze přístupná;
  • Posun data- 0 nebo 2000. Tento parametr definuje počet let, které budou přidány k datům při jejich uložení do databáze Data společnosti Microsoft SQL Server a odečteny při jejich načítání. Jde o to, že použitý typ DATATIME Microsoft SQL Server vám umožňuje ukládat data v rozsahu od 1. ledna 1753 do 31. prosince 9999. Pokud se při práci s infobází může vyskytnout potřeba ukládat data předcházející spodní hranici tohoto rozsahu, měl by být posun data zvolen na 2000. Pokud navíc aplikační řešení používá akumulační registry nebo účetní registry (a s největší pravděpodobností to bude tento případ), také v poli „Posun data musí být nastaven na 2000.
  • Nastavte blokování rutinní úkoly — nastavení příznaku umožňuje zakázat provádění naplánovaných úloh na serveru pro tuto informační základnu. Měl by být instalován v případě vytváření testovacích informačních bází, kde implementace rutinních úkolů nenese žádnou praktickou zátěž.

Po nastavení všech parametrů informační základny klikněte na „ " nastavením příslušného přepínače a kliknutím "».

A nakonec zadejte parametry spuštění pro vytvářenou databázi a klikněte na „ Připraveno» zahájit proces vytváření nové informační základny. Současně bude na serveru 1C:Enterprise vytvořena nová informační základna, v případě potřeby vytvořena nová základna data na databázovém serveru a data budou načtena také z konfigurační šablony.

Pokud všechno výše uvedené akce dokončen úspěšně, průvodce dokončí svou práci a nově vytvořenou databázi uvidíme v seznamu infobází ve spouštěcím okně 1C:Enterprise.

2. Přidání informační báze z konzoly pro správu serveru 1C:Enterprise

Nyní přidáme další infobázi do serverového clusteru, ale prostřednictvím „ Správa serverů 1C:Enterprise"(dříve). Můžete to najít:

V každém případě lze modul snap-in spustit spuštěním souboru „ 1CV8 Servers.msc"umístěné v instalačním adresáři 1C:Enterprise v podadresáři" společný».

Pokud zařízení" "běží na stejném počítači, kde je nainstalován server 1C:Enterprise, pak ve stromu vlevo, ve větvi s názvem sítě aktuální počítač, měli bychom vidět tento serverový cluster s názvem " Místní cluster" Rozbalení karty " Informační základny"uvidíme všechny informační databáze v tomto serverovém clusteru (například databázi vytvořenou prostřednictvím spouštěcího okna 1C:Enterprise v předchozím kroku). Chcete-li přidat novou informační základnu, klikněte pravým tlačítkem myši na tuto kartu v kontextové menu vybrat " Vytvořit» — « Informační základna».

Otevře se okno parametrů pro vytvořenou infobázi. Seznam parametrů je stejný jako seznam popsaný výše v odstavci 1 tohoto návodu. Po vyplnění všech parametrů klikněte na „ OK» zahájit proces vytváření nové informační základny. V tomto případě bude na serveru 1C:Enterprise vytvořena nová informační báze a v případě potřeby bude vytvořena nová databáze na databázovém serveru.

Pokud jsou všechny výše uvedené akce úspěšně dokončeny, okno parametrů se zavře a nově vytvořenou databázi uvidíme v seznamu infobází aktuálního clusteru.

A pokud půjdete na program „ve středu“. SQL Správa serveru Studio" a připojte se k aktuální instanci MS SQL Server, můžete vidět ty vytvořené na předchozí kroky databází.

3. Vlastnosti informační báze

Chcete-li zobrazit nebo změnit parametry konkrétní infobáze, musíte použít " Správa serverů 1C Enterprise", v seznamu infobází na něj klikněte pravým tlačítkem a vyberte " Vlastnosti" Chcete-li se autentizovat v administrační konzoli, musíte použít administrátory v odpovídajících infobázích. Jinými slovy tuto kontrolu je podobný autentizaci při připojení k infobázi prostřednictvím klienta 1C:Enterprise.

Jak vidíte, do seznamu parametrů, které již známe, byly přidány následující:

  • Blokování zahájení relace je povoleno— příznak, který umožňuje povolit blokování začátku relací s infobází, pokud je příznak nastaven, pak:
    • Stávající relace mohou pokračovat v běhu, navazovat nová připojení a také spouštět úlohy na pozadí;
    • Navazování nových relací a připojení k infobázi je zakázáno.
  • Start pro jiné verze platformy - Konec— trvání blokování relace;
  • Zpráva— text, který bude součástí chybové zprávy při pokusu o navázání spojení se zablokovanou infobází;
  • Kód oprávnění— řetězec, který by měl být přidán do parametru /UC při spouštění 1C:Enterprise se připojit k infobázi, přestože je blokován;
  • Možnosti blokovánívolný text, které lze použít v konfiguracích pro různé účely;
  • Správa externích relací— řetězec popisující parametry webové služby vnější kontrola sezení;
  • Povinné použití externí kontroly— pokud je nastaven příznak, pak pokud je webová služba pro správu externích relací nedostupná, dojde k chybě a není možné navázat spojení s infobází;
  • Bezpečnostní profil— pokud zadáte název profilu, aplikační řešení začne fungovat s ohledem na omezení uložená zadaný profil zabezpečení;
  • Bezpečnostní profil bezpečný režim - stejný jako bezpečnostní profil, ale na fragmenty aplikačního řešení fungující v nouzovém režimu budou uvalena omezení.

Změnou požadované parametry klikni " Použít" pro uložení změn nebo " OK» uložte a zavřete okno vlastností infobáze.

4. Přidání existující infobáze do seznamu infobází ve spouštěcím okně 1C:Enterprise

A nakonec vše, co musíme udělat, je přidat ten vytvořený pomocí „ Správa serverů 1C Enterprise» infobase do seznamu infobází ve spouštěcím okně 1C:Enterprise. Proč v tomto okně klikněte na „ . Chcete-li to provést, spusťte „1C:Enterprise“ a ve spouštěcím okně klikněte na „" a v průvodci, který začne přidávat infobázi/skupinu, vyberte příslušnou položku a klikněte na " " nastavením příslušného přepínače a kliknutím "».

Zadejte název infobáze, jak bude zobrazen v seznamu, vyberte typ umístění infobáze " Na serveru 1C:Enterprise" a znovu stiskněte " " nastavením příslušného přepínače a kliknutím "».

Zadejte adresu serverového clusteru 1C:Enterprise a název informační databáze, jak je definována v tomto clusteru. klikněte na " " nastavením příslušného přepínače a kliknutím "».

A nakonec nastavte parametry pro spuštění infobáze a klikněte na „ Připraveno» pro dokončení průvodce.

Naše databáze se objevila v seznamu informačních databází. Musíte pochopit, že se jedná o prázdnou (čistou) databázi, a pak byste do ní měli načíst data ze šablony nebo z předem načteného datového souboru.

Pomohl vám tento článek?

Termín "databázový server" se používá k označení celého DBMS založeného na architektuře klient-server, včetně serverových a klientských částí. Takové systémy jsou navrženy tak, aby ukládaly a poskytovaly přístup k databázi. Obvykle je jedna databáze uložena celá v jednom síťovém uzlu a spravována serverem v databázovém serveru, což je jednoduchá a levná aproximace distribuovaných databází, protože sdílená databáze je dostupná všem uživatelům v místní síti. Přístup k databázím z aplikačního programu nebo uživatele se provádí pomocí klientské části systému. Jako hlavní rozhraní mezi klientem a části serveru Používá se jazyk SQL.

Jazyk SQL je aktuálním standardem pro rozhraní DBMS v otevřených systémech. Opatrností při programování můžete vytvářet informační systémy mobilních aplikací ve třídě SQL serverů.

Databázové servery, jejichž rozhraní je založeno na jazyce SQL, mají své výhody i nevýhody.

Výhody: standardní otevřené rozhraní, tedy klientská část jakékoli orientované DBMS může pracovat s jakýmkoliv SQL serverem, bez ohledu na to, kdy jej společnost vyvinula.

Nedostatky. Na vysoké úrovni rozhraní mezi klientskou a serverovou částí systému pracuje na straně klienta příliš málo programů DBMS. To je normální, pokud klientská strana používá nízkoenergetickou běžící stanici. Ale pokud má klientská komponenta dostatečný výkon, pak je často nutné přiřadit k ní rozsáhlé funkce pro správu databází. Uvolněte server, který je v tomto případě úzkým hrdlem tohoto systému. Jedním ze správných směrů pro DBMS je flexibilní nakonfigurovaný systém, ve kterém jsou funkce distribuovány mezi klientské a uživatelské systémy.

Výhody protokolů vzdáleného volání procedur

    Použití mechanismu vzdáleného volání procedur vám umožňuje redistribuovat funkce mezi klientskou a serverovou částí systémů, protože v textu programu RPC se neliší od jeho běžného volání. V důsledku toho může být jakákoliv komponenta systému umístěna jak na straně serveru, tak na straně klienta.

    Mechanismus RPC skrývá rozdíly mezi interagujícími počítači, fyzicky heterogenní místní síť je redukována na logicky homogenní síť vzájemně se ovlivňujících komponent. V důsledku používání se nemusíte vážně obávat jednorázového nákupu kompatibilních serverů a pracovních stanic.

Typická distribuce funkcí mezi klienty a servery

Dnes je typické, že pouze software, který pracuje na straně DBMS, nemá přímý přístup k databázi, ale místo toho přistupuje k serveru pomocí jazyka SQL.

V některých případech je nutné zařadit do klientské části systému některé funkce pro práci s lokální databázovou cache, tzn. s tou jeho částí, která je intenzivně využívána klientským aplikačním programem. Použití moderní technologie To lze provést pouze formálním vytvořením lokální kopie databázových serverů na straně klienta a zpracováním celého systému jako sady vzájemně spolupracujících serverů. Na druhou stranu by někdy bylo žádoucí přenést velkou část aplikačního systému na stranu serveru, pokud je rozdíl ve výkonu klientských pracovních stanic a serveru velký, lze to provést pomocí vzdáleného volání procedur že to serverový software umožňuje.

Hardwarové a softwarové požadavky na klientské a servisní počítače se liší v závislosti na typu použitého systému.

Pokud je oddělení mezi klientskou a servisní částí poměrně striktní, jako ve většině moderních DBMS, pak uživatelům pracujícím na stanicích nezáleží na tom, jaký hardware a operační systém běží na serveru, za předpokladu, že je porovnán s vznikajícím tokem požadavků.

Pokud může být potřeba redistribuovat funkce mezi klientem a serverem, pak nezáleží na tom, které systémové operace jsou použity.

Distribuované databáze

Hlavním úkolem distribuovaného systému správy databází je poskytnout prostředky pro integraci lokálních databází umístěných v některých uzlech počítačová síť takže uživatelé pracující na jakémkoli síťovém uzlu mají přístup ke všem databázím jako k jediné databázi. V tomto případě je třeba zajistit následující:

1) snadné použití systému;

2) možnost autonomního fungování v případě přerušení síťové konektivity;

Typy distribuovaných systémů

Existují homogenní a heterogenní databáze. V homogenní databázi je každá lokální databáze spravována stejným DBMS. V heterogenním systému mohou dokonce patřit místní databáze různé modely data.

Nejúspěšněji je v současnosti řešen problém integrace heterogenních systémů orientovaných na SQL. To je usnadněno standardizací jazyka SQL a obecnou přilnavostí.

Hlavní cíl projektu vytvoření distribuovaného systému pro správu databází lze formulovat následovně: je nutné zajistit prostředky pro integraci lokálních databází umístěných v uzlech počítačové sítě tak, aby uživatel pracující v libovolném uzlu sítě měl přístup do všech těchto databází, takže jako by byly centralizované, a musí zajistit:

1) snadné použití systému;

2) možnost autonomního fungování v případě přerušení síťové konektivity;

3) vysoký stupeň účinnosti.

K vyřešení těchto problémů byla učiněna řada nezbytných návrhových rozhodnutí týkajících se dekompozice původního dotazu, optimální volby způsobu provádění dotazu, konzistentního provádění transakcí, zajištění synchronizace, detekce a řešení distribuovaných uváznutí a obnovení stavu databází po různé typy poruch v uzlech sítě. Snadné použití systému je dosaženo díky tomu, že uživatelé zůstávají v prostředí jazyka SQL. Schopnost používat SQL poskytuje přehled o umístění dat. Systém automaticky detekuje aktuální umístění datových objektů uvedených v požadavku uživatele. Stejný aplikační program, včetně aplikace SQL, lze spustit na různých síťových uzlech. V tomto případě je v každém síťovém uzlu ve fázi kompilace dotazu nejvíce optimální plán provádění dotazů v souladu s umístěním dat v distribuovaném systému. Zajištění autonomie síťových uzlů lze zajistit následujícím způsobem: každá lokální databáze je spravována nezávisle na ostatních, je možné autonomně připojovat nové uživatele, měnit verzi autonomní části systému atd. Systém je navržen tak, aby nevyžadoval centralizované pojmenování objektů nebo služby detekce uváznutí.

Jednotlivé uzly nemusí mít globální znalosti o operacích probíhajících v jiných uzlech v síti. Práce s dostupnými databázemi může pokračovat, pokud jednotlivé síťové uzly a komunikační linky selžou. K dosažení vysokého stupně účinnosti systému se používají dvě hlavní techniky. Za prvé, provedení dotazu předchází kompilace. Během tohoto procesu jsou názvy databázových objektů použitých v požadavku prohledávány v distribuovaném adresáři a názvy jsou nahrazeny interními identifikátory; kontrola přístupových práv uživatele, ze kterého se provádí kompilace, pro provedení odpovídající operace na databázích a výběr nejoptimálnějšího globálního plánu provádění dotazů, který je následně rozložen a po částech odeslán do příslušných síťových uzlů, kde se vytvoří optimální lokální jsou vybrány prováděcí plány pro komponenty dotazu a generování přístupových modulů strojové kódy. V důsledku toho se mnoho akcí provádí ve fázi kompilace před skutečným provedením dotazů. Takto zpracovaný aplikační program vč SQL příkazy, lze pak provést mnohokrát bez další režie.

Za druhé, prostředkem ke zvýšení efektivity systému je schopnost přesunout vzdálené vztahy lokální databáze data.

Distribuovaná kompilace dotazů

Dotazy SQL lze zkompilovat ještě před jejich skutečným provedením. Kompilaci dotazu lze provést ve fázi předkompilace aplikačního programu napsané v běžném tradičním programovacím jazyce včetně příkazů SQL nebo v procesu provádění transakcí pomocí příkazu SQL. Z pohledu uživatele přináší proces kompilace následující výsledky: pro každý SQL příkaz je vygenerován nativní program, jehož volání jsou umístěna v textu zdrojového aplikačního programu, ale ve skutečnosti proces kompilace dotazu je mnohem složitější kvůli složitým síťovým interakcím, které jsou vyžadovány při samotném provádění transakce. Hlavním uzlem sítě budeme nazývat uzel, ve kterém je zahájen proces kompilace SQL příkazů, a další uzly (ty uzly, které jsou do tohoto procesu zapojeny při jeho provádění). Na nejzákladnější úrovni lze proces kompilace rozdělit do následujících fází:

    V hlavním uzlu sítě se analyzuje SQL věta a vytvoří se interní reprezentace dotazu ve formě stromu. Na základě informací z lokálního adresáře hlavního uzlu a vzdálených adresářů dalších uzlů jsou názvy objektů objevujících se v požadavku nahrazeny jejich systémovými identifikátory.

    Hlavní uzel generuje globální plán provádění dotazu, který bere v úvahu pouze pořadí, ve kterém uzly interagují během skutečného provádění dotazu. Globální plán se zobrazí ve vhodně transformovaném stromu dotazů.

    Pokud jsou do plánu provádění globálního dotazu zapojeny další uzly, je tento plán rozložen na části, z nichž každou lze spustit v jednom uzlu. Například lokální filtrování vztahu podle dané podmínky, kdy jsou odpovídající části požadavku odeslány do odpovídajících dalších uzlů.

Každý uzel účastnící se globálního plánu provádění dotazů, ať už hlavní nebo sekundární, spouští konečnou fázi kompilace. Tato fáze v podstatě zahrnuje poslední dvě fáze procesu kompilace dotazu: optimalizace a generování strojových kódů jsou kontrolována pro provedení příslušných akcí; Zpracují se databázové pohledy, provede se lokální optimalizace zpracovávané části dotazu v souladu s dostupnými indexy a vygeneruje se kód.

Anotace: Tato přednáška obsahuje materiály o řízení přístupu k databázi SQL data Server, včetně správy uživatelů databáze, povolení uživatele typu host, vytváření databázových rolí, udělování oprávnění k databázi a přidávání uživatele databáze

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í verze SQL Server může 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 může být odebrána. další verze programy.

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řidejte uživatele databáze, 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 Peter:

  • 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 serveru 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 BEZ PŘIHLÁŠENÍ nejsou považováni za osiřelé 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í. To lze provést 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 vystupovat zálohování
Členství databází
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 potřebujete 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í Po dokončení žádosti IS_MEMBER, můžete zkontrolovat, zda aktuální uživatel patří do nějaké databázové role. V následujícím příkladu zkontrolujeme, zda aktuální uživatel patří do databázové role db_owner.

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

    POUŽÍVEJTE AdventureWorks; JÍT

  • Kontrola, zda aktuální uživatel patří do role db_owner


Nahoru