Lektion 2: Konfigurieren von Berechtigungen für Datenbankobjekte

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAnalytics Platform System (PDW)

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.

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.

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

  1. 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.
  2. 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.
  3. Geben Sie in das Feld BenutzernameMaryein.
  4. 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 Maryausfü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: