Požadavky: Web používá SQL Server jako trvalé úložiště a musí konfigurovat adresu databáze, účet, heslo a konfiguraci spojovacích řetězcůUživatelé SA jsou ta práva trochu příliš velkáChci vytvořit nového uživatele, který povolí všechna oprávnění pouze k určité databázi. Tento článek používá nástroj SQL Server Management Studio k připojení k databázové službě SQL Server 2019 jako příklad.
Otevřete SQL Server Management Studio a přihlaste se pomocí Windows autentizace (nebo použijte svůj SA účet).
Nejprve vytvořte novou databázi TestDB pomocí následujícího příkazu:
Klikněte na levé menu [Bezpečnost] --- [Přihlásit], poté klikněte pravým tlačítkem na "Přihlásit se" a klikněte na [Nové přihlášení], jak je uvedeno níže:
V záložce Obecné vyplňte přihlašovací jméno, heslo, potvrďte heslo a vyberte výchozí databázi, jak je znázorněno na následujícím obrázku:
Přepněte na uživatelskou mapu, zkontrolujte cílovou databázi [TestDB] a udělte veřejná, db_owner oprávnění (aby nový uživatel mohl mít administrátorská oprávnění na databázové TestDB), jak je znázorněno na obrázku níže:
Nakonec klikněte na OK.
Snažíme se použít nově vytvořeného uživatele k přihlášení do databáze, jak je znázorněno na následujícím obrázku:
Ačkoliv můžete vidět jiné databáze, při pokusu o přístup k nim dostanete následující chybu:
Název: Microsoft SQL Server Management Studio ------------------------------
Test databáze není přístupný. (ObjectExplorer)
------------------------------ Knoflík:
Opravdu ------------------------------
Nakonec přiložte popis oprávnění:
'db_owner' - má plná oprávnění k databázi, včetně oprávnění pro mazání databáze 'db_accessadmin' - dává databázi uživatelské oprávnění pouze vytvářet další uživatele databáze, ale ne právo vytvářet přihlášené uživatele. 'db_securityadmin' - Správa plných oprávnění, vlastnictví objektů, rolí a členství v rolích 'db_ddladmin' - může vysílat všechny DDL (Create, Alter and Drop), ale ne příkazy GRANT, REVOKE nebo DENY 'db_backupoperator' -- Oprávnění pro zálohování a obnovu databáze [zálohování a obnovu lze také provádět přes SQL Sever Management Studio] 'db_datareader' - může vybrat všechna data z libovolné uživatelské tabulky v databázi 'db_datawriter' - může změnit všechna data v jakékoli uživatelské tabulce v databázi 'db_denydatareader' - nelze dotazovat žádná data v žádné uživatelské tabulce v databázi 'db_denydatawriter' - nelze měnit žádná data v žádné uživatelské tabulce v databázi
(Konec)
|