Lektion 2: Konfigurieren von Berechtigungen für Datenbankobjekte
Gilt für: SQL Server Azure SQL-Datenbank Sql verwaltete Instanz Analytics Platform System (PDW)-SQL-Datenbank in Microsoft Fabric
Hinweis
Der Lernpfad Erste Schritte für Abfragen mit Transact-SQL bietet ausführlichere Inhalte sowie praktische Beispiele.
Wenn Sie einem Benutzer Zugriff auf eine Datenbank gewähren möchten, müssen drei Schritte ausgeführt werden. Zuerst erstellen Sie einen Anmeldenamen. Dieser Anmeldename ermöglicht es dem Benutzer, eine Verbindung mit SQL Server-Datenbank-Engineherzustellen. Anschließend konfigurieren Sie den Anmeldenamen als Benutzer in der angegebenen Datenbank. Im letzten Schritt erteilen Sie diesem Benutzer Berechtigungen für Datenbankobjekte. In dieser Lektion werden diese drei Schritte beschrieben, und es wird gezeigt, wie eine Sicht und eine gespeicherte Prozedur als Objekt erstellt werden.
Hinweis
Diese Lektion basiert auf Objekten, die in Lektion 1: Erstellen von Datenbankobjekten erstellt wurden. Schließen Sie Lektion 1 ab, bevor Sie mit Lektion 2 fortfahren.
Voraussetzungen
Zur Durchführung dieses Tutorials benötigen Sie SQL Server Management Studio und Zugriff auf eine SQL Server-Instanz.
- Installieren Sie SQL Server Management Studio.
Wenn Sie über keinen Zugriff auf eine SQL Server-Instanz verfügen, wählen Sie Ihre Plattform aus den folgenden Links aus. Wenn Sie die SQL-Authentifizierung wählen, verwenden Sie Ihre SQL Server-Anmeldeinformationen.
- Windows: Laden Sie die SQL Server 2022 Developer Edition herunter.
- Linux: Laden Sie SQL Server 2022 in einen Container herunter.
Wir hören Ihnen zu: Wenn Sie in diesem Artikel – beispielsweise in einem Schritt oder Codebeispiel – veraltete oder falsche Informationen finden, lassen Sie es uns bitte wissen. Sie können unten auf dieser Seite im Abschnitt Feedback auf die Schaltfläche Diese Seite klicken. Wir lesen jedes Feedback zu SQL in der Regel am nächsten Tag. Vielen Dank.
Erstellen eines Anmeldenamens
Benutzer benötigen eine Anmeldung, damit sie auf Datenbank-Enginezugreifen können. Die Anmeldung kann die Identität des Benutzers als Windows-Konto oder als Mitglied einer Windows-Gruppe darstellen, oder es kann sich dabei um eine SQL Server -Anmeldung handeln, die nur in SQL Servervorhanden ist. Verwenden Sie nach Möglichkeit die Windows-Authentifizierung.
Standardmäßig haben Administratoren auf Ihrem Computer vollständigen Zugriff auf SQL Server. In dieser Lektion benötigen wir einen Benutzer mit geringeren Privilegien. Aus diesem Grund erstellen Sie ein neues lokales Windows-Authentifizierungskonto auf Ihrem Computer. Dazu müssen Sie über Administratorrechte auf dem Computer verfügen. Anschließend erteilen Sie diesem neuen Benutzer Zugriff auf SQL Server.
Erstellen eines neuen Windows-Kontos
- Wählen Sie Start und Ausführen aus, geben Sie in das Feld Öffnen den Text
%SystemRoot%\system32\compmgmt.msc /s
ein, und klicken Sie dann auf OK, um das Programm „Computerverwaltung“ zu öffnen. - Erweitern Sie unter Systemprogramme den Eintrag Lokale Benutzer und Gruppen, klicken Sie mit der rechten Maustaste auf Benutzer, und wählen Sie dann Neuer Benutzer aus.
- Geben Sie in das Feld BenutzernameMaryein.
- Geben Sie in die Felder Kennwort und Kennwort bestätigen ein sicheres Kennwort ein, und wählen Sie dann Erstellen aus, um einen neuen lokalen Windows-Benutzer zu erstellen.
Erstellen einer SQL-Anmeldung
Geben Sie in einem Abfrage-Editor-Fenster von SQL Server Management Studiofolgenden Code ein, und führen Sie ihn aus. Ersetzen Sie dabei computer_name
durch den Namen Ihres Computers. FROM WINDOWS
gibt an, dass Windows die Benutzerin authentifiziert. Mit dem optionalen Argument DEFAULT_DATABASE
wird Mary
mit der Datenbank TestData
verbunden, sofern die Verbindungszeichenfolge keine andere Datenbank angibt. Diese Anweisung führt das Semikolon als optionale Beendigung für eine Transact-SQL-Anweisung ein.
CREATE LOGIN [computer_name\Mary]
FROM WINDOWS
WITH DEFAULT_DATABASE = [TestData];
GO
Dadurch wird ein Benutzer mit Namen Mary
, der von Ihrem Computer authentifiziert wird, zum Zugriff auf diese Instanz von SQL Serverberechtigt. Ist auf dem Computer mehr als eine Instanz von SQL Server vorhanden, müssen Sie die Anmeldung auf jeder Instanz erstellen, auf die Mary
Zugriff benötigt.
Hinweis
Weil Mary
kein Domänenkonto ist, kann dieser Benutzername nur auf diesem Computer authentifiziert werden.
Gewähren von Zugriff auf eine Datenbank
Das Konto Mary
hat jetzt Zugriff auf diese Instanz von SQL Server, aber keine Berechtigung für den Zugriff auf die Datenbanken. Das Konto kann selbst auf die Standarddatenbank TestData
erst dann zugreifen, wenn Sie das Konto als Datenbankbenutzerin autorisieren.
Wenn Sie Mary
Zugriff gewähren möchten, wechseln Sie zur Datenbank TestData
, und ordnen Sie ihren Anmeldenamen mithilfe der CREATE USER-Anweisung einer Benutzerin namens Mary
zu.
Erstellen eines Benutzers in einer Datenbank
Geben Sie die folgenden Anweisungen ein (wobei Sie computer_name
durch den Namen Ihres Computers ersetzen), und führen Sie sie aus, um Mary
Zugriff auf die TestData
-Datenbank zu gewähren.
USE [TestData];
GO
CREATE USER [Mary] FOR LOGIN [computer_name\Mary];
GO
Mary hat nun sowohl auf SQL Server als auch auf die TestData
-Datenbank Zugriff.
Erstellen von Ansichten und gespeicherten Prozeduren
Als Administrator können Sie die SELECT-Anweisung über die Tabelle Products
und die Sicht vw_Names
ausführen, und Sie können die Prozedur pr_Names
ausführen. Mary hingegen ist dazu nicht berechtigt. Verwenden Sie die GRANT-Anweisung, um Mary die erforderlichen Berechtigungen zu erteilen.
Erteilen von Berechtigungen für gespeicherte Prozeduren
Führen Sie die folgende Anweisung aus, um Mary
die EXECUTE
-Berechtigung für die gespeicherte Prozedur pr_Names
zu erteilen.
GRANT EXECUTE ON pr_Names TO Mary;
GO
In diesem Szenario kann Mary mithilfe der gespeicherten Prozedur nur auf die Products
-Tabelle zugreifen. Wenn Sie möchten, dass Mary eine SELECT-Anweisung für die Sicht ausführen kann, müssen Sie auch GRANT SELECT ON vw_Names TO Mary
ausführen. Verwenden Sie die REVOKE-Anweisung, um den Zugriff auf Datenbankobjekte zu entfernen.
Hinweis
Wenn der Besitzer der Tabelle, Sicht und gespeicherten Prozedur nicht das gleiche Schema ist, wird die Erteilung von Berechtigungen komplexer.
Informationen zu GRANT
Sie müssen über die EXECUTE-Berechtigung verfügen, um eine gespeicherte Prozedur auszuführen. Sie müssen über die SELECT-, INSERT-, UPDATE- und DELETE-Berechtigungen verfügen, um auf Daten zuzugreifen und sie zu ändern. Die GRANT-Anweisung wird auch für andere Berechtigungen wie die zum Erstellen von Tabellen verwendet.
Nächste Schritte
Im nächsten Artikel erfahren Sie, wie Sie die Datenbankobjekte entfernen können, die Sie in den anderen Lektionen erstellt haben.
Zum nächsten Artikel wechseln, um mehr zu erfahren: