Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Verwaltete Azure SQL-Instanz
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-Analyseendpunkt in Microsoft Fabric
Lagerhaus in Microsoft Fabric
SQL-Datenbank in Microsoft Fabric
Erteilt Berechtigungen für eine Datenbank in SQL Server.
Transact-SQL-Syntaxkonventionen
Syntax
GRANT <permission> [ ,...n ]
TO <database_principal> [ ,...n ] [ WITH GRANT OPTION ]
[ AS <database_principal> ]
<permission>::=
permission | ALL [ PRIVILEGES ]
<database_principal> ::=
Database_user
| Database_role
| Application_role
| Database_user_mapped_to_Windows_User
| Database_user_mapped_to_Windows_Group
| Database_user_mapped_to_certificate
| Database_user_mapped_to_asymmetric_key
| Database_user_with_no_login
Arguments
permission Gibt eine Berechtigung an, die für eine Datenbank erteilt werden kann. Eine Liste der Berechtigungen finden Sie im Abschnitt zu den Hinweisen weiter unten in diesem Thema.
ALL Mit dieser Option werden nicht alle möglichen Berechtigungen erteilt. Das Gewähren von ALLEN entspricht der Gewährung der folgenden Berechtigungen: BACKUPDATABASE, BACKUP LOG, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLEund CREATE VIEW.
PRIVILEGES Aus Gründen der Kompatibilität mit ANSI-92 eingeschlossen. Ändert das Verhalten von ALL nicht.
MIT GRANT OPTION Gibt an, dass der Hauptmann auch die Möglichkeit erhält, die angegebene Erlaubnis anderen Hauptverantwortlichen zu erteilen.
AS <Datenbankprinzipal> gibt einen Prinzipal an, von dem der Prinzipal, der diese Abfrage ausführt, sein Recht zum Zuweisen der Berechtigung ableitet.
Database_user Gibt einen Datenbankbenutzer an.
Database_role Gibt eine Datenbankrolle an.
Application_roleGilt für: SQL Server 2008 (10.0.x) und höher sowie SQL-Datenbank
Gibt eine Anwendungsrolle an.
Database_user_mapped_to_Windows_UserGilt für: SQL Server 2008 (10.0.x) und höher
Gibt einen Datenbankbenutzer an, der einem Windows-Benutzer zugeordnet ist.
Database_user_mapped_to_Windows_GroupGilt für: SQL Server 2008 (10.0.x) und höher
Gibt einen Datenbankbenutzer an, der einer Windows-Gruppe zugeordnet ist.
Database_user_mapped_to_certificateGilt für: SQL Server 2008 (10.0.x) und höher
Gibt einen Datenbankbenutzer an, der einem Zertifikat zugeordnet ist.
Database_user_mapped_to_asymmetric_keyGilt für: SQL Server 2008 (10.0.x) und höher
Gibt einen Datenbankbenutzer an, der einem asymmetrischen Schlüssel zugeordnet ist.
Database_user_with_no_login Gibt einen Datenbankbenutzer ohne entsprechenden Prinzipal auf Serverebene an.
Remarks
Important
Durch eine Kombination von ALTER- und REFERENCE-Berechtigungen würde in manchen Fällen zugelassen, dass der Empfänger Daten anzeigt oder Funktionen ausführt, für die er nicht autorisiert ist. Beispiel: Ein Benutzer mit ALTER-Berechtigung für eine Tabelle und REFERENCE-Berechtigung für eine Funktion kann eine berechnete Spalte für eine Funktion erstellen und ausführen lassen. In diesem Fall benötigt der Benutzer auch die SELECT-Berechtigung für die berechnete Spalte.
Eine Datenbank ist ein sicherungsfähiges Element auf dem Server, der das übergeordnete Element in der Berechtigungshierarchie ist. Die spezifischsten und restriktivsten Berechtigungen, die für eine Datenbank erteilt werden können, sind in der folgenden Tabelle aufgeführt. Außerdem enthält die Tabelle die allgemeineren Berechtigungen, die implizit enthalten sind.
| Datenbankberechtigung | Impliziert durch Datenbankberechtigung | Impliziert durch die Serverberechtigung |
|---|---|---|
| VERWALTEN VON DATABASE MASSENVORGÄNGEN Gilt für: SQL-Datenbank |
CONTROL | Steuerungsserver |
| ALTER | CONTROL | JEDES ÄNDERN DATABASE |
| JEDES ÄNDERN APPLICATION ROLE | ALTER | Steuerungsserver |
| JEDES ÄNDERN ASSEMBLY | ALTER | Steuerungsserver |
| JEDES ÄNDERN ASYMMETRIC KEY | ALTER | Steuerungsserver |
| JEDES ÄNDERN CERTIFICATE | ALTER | Steuerungsserver |
| JEDES ÄNDERN COLUMN ENCRYPTION KEY | ALTER | Steuerungsserver |
| ÄNDERN SIE JEDE COLUMN MASTER KEY DEFINITION | ALTER | Steuerungsserver |
| JEDES ÄNDERN CONTRACT | ALTER | Steuerungsserver |
| ÄNDERN EINER BELIEBIGEN DATABASE ÜBERWACHUNG | ALTER | JEDES ÄNDERN SERVER AUDIT |
| ÄNDERN SIE JEDEN DATABASE DDL TRIGGER | ALTER | Steuerungsserver |
| ÄNDERN BELIEBIGEN DATABASEEVENT NOTIFICATION | ALTER | JEDES ÄNDERN EVENT NOTIFICATION |
| ÄNDERN BELIEBIGEN DATABASEEVENT SESSION Gilt für: SQL-Datenbank. |
ALTER | JEDES ÄNDERN EVENT SESSION |
| JEDES ÄNDERN DATABASE SCOPED CONFIGURATION Gilt für: SQL Server 2016 (13.x) und höher, SQL-Datenbank. |
CONTROL | Steuerungsserver |
| ÄNDERN EINES BELIEBIGEN DATENBEREICHS | ALTER | Steuerungsserver |
| JEDES ÄNDERN EXTERNAL DATA SOURCE | ALTER | Steuerungsserver |
| JEDES ÄNDERN EXTERNAL FILE FORMAT | ALTER | Steuerungsserver |
| JEDES ÄNDERN EXTERNAL LIBRARY Gilt für: SQL Server 2017 (14.x). |
CONTROL | Steuerungsserver |
| JEDES ÄNDERN FULLTEXT CATALOG | ALTER | Steuerungsserver |
| BELIEBIGE MASKE ÄNDERN | CONTROL | Steuerungsserver |
| JEDES ÄNDERN MESSAGE TYPE | ALTER | Steuerungsserver |
| JEDES ÄNDERN REMOTE SERVICE BINDING | ALTER | Steuerungsserver |
| JEDES ÄNDERN ROLE | ALTER | Steuerungsserver |
| JEDES ÄNDERN ROUTE | ALTER | Steuerungsserver |
| JEDES ÄNDERN SCHEMA | ALTER | Steuerungsserver |
| JEDES ÄNDERN SECURITY POLICY Gilt für: Azure SQL-Datenbank. |
CONTROL | Steuerungsserver |
| JEDES ÄNDERN SENSITIVITY CLASSIFICATION Gilt für: SQL Server (SQL Server 2019 und höher), Azure SQL-Datenbank. |
CONTROL | Steuerungsserver |
| JEDES ÄNDERN SERVICE | ALTER | Steuerungsserver |
| JEDES ÄNDERN SYMMETRIC KEY | ALTER | Steuerungsserver |
| JEDES ÄNDERN USER | ALTER | Steuerungsserver |
| AUTHENTICATE | CONTROL | AUTHENTIFIZIEREN DES SERVERS |
| BACKUP DATABASE | CONTROL | Steuerungsserver |
| BACKUP PROTOKOLL | CONTROL | Steuerungsserver |
| CHECKPOINT | CONTROL | Steuerungsserver |
| CONNECT | VERBINDUNGSREPLIKATION | Steuerungsserver |
| VERBINDUNGSREPLIKATION | CONTROL | Steuerungsserver |
| CONTROL | CONTROL | Steuerungsserver |
| CREATE AGGREGATE | ALTER | Steuerungsserver |
| BELIEBIG ERSTELLEN EXTERNAL LIBRARY Gilt für: SQL Server 2017 (14.x). |
CONTROL | Steuerungsserver |
| CREATE ASSEMBLY | JEDES ÄNDERN ASSEMBLY | Steuerungsserver |
| CREATE ASYMMETRIC KEY | JEDES ÄNDERN ASYMMETRIC KEY | Steuerungsserver |
| CREATE CERTIFICATE | JEDES ÄNDERN CERTIFICATE | Steuerungsserver |
| CREATE CONTRACT | JEDES ÄNDERN CONTRACT | Steuerungsserver |
| CREATE DATABASE | CONTROL | BELIEBIG ERSTELLEN DATABASE |
| CREATE DATABASE DDL EVENT NOTIFICATION | ÄNDERN BELIEBIGEN DATABASEEVENT NOTIFICATION | CREATE DDL EVENT NOTIFICATION |
| CREATE DEFAULT | ALTER | Steuerungsserver |
| CREATE FULLTEXT CATALOG | JEDES ÄNDERN FULLTEXT CATALOG | Steuerungsserver |
| CREATE FUNCTION | ALTER | Steuerungsserver |
| CREATE MESSAGE TYPE | JEDES ÄNDERN MESSAGE TYPE | Steuerungsserver |
| CREATE PROCEDURE | ALTER | Steuerungsserver |
| CREATE QUEUE | ALTER | Steuerungsserver |
| CREATE REMOTE SERVICE BINDING | JEDES ÄNDERN REMOTE SERVICE BINDING | Steuerungsserver |
| CREATE ROLE | JEDES ÄNDERN ROLE | Steuerungsserver |
| CREATE ROUTE | JEDES ÄNDERN ROUTE | Steuerungsserver |
| CREATE RULE | ALTER | Steuerungsserver |
| CREATE SCHEMA | JEDES ÄNDERN SCHEMA | Steuerungsserver |
| CREATE SERVICE | JEDES ÄNDERN SERVICE | Steuerungsserver |
| CREATE SYMMETRIC KEY | JEDES ÄNDERN SYMMETRIC KEY | Steuerungsserver |
| CREATE SYNONYM | ALTER | Steuerungsserver |
| CREATE TABLE | ALTER | Steuerungsserver |
| CREATE TYPE | ALTER | Steuerungsserver |
| CREATE VIEW | ALTER | Steuerungsserver |
| CREATE XML SCHEMA COLLECTION | ALTER | Steuerungsserver |
| DELETE | CONTROL | Steuerungsserver |
| EXECUTE | CONTROL | Steuerungsserver |
| AUSFÜHREN BELIEBIGER EXTERNER ELEMENTE ENDPOINT Gilt für: Azure SQL-Datenbank. |
CONTROL | Steuerungsserver |
| AUSFÜHREN EINES BELIEBIGEN EXTERNEN SKRIPTS Gilt für: SQL Server 2016 (13.x). |
CONTROL | Steuerungsserver |
| EXTERNES SKRIPT AUSFÜHREN Gilt für: SQL Server 2019 (15.x). |
AUSFÜHREN EINES BELIEBIGEN EXTERNEN SKRIPTS | Steuerungsserver |
| INSERT | CONTROL | Steuerungsserver |
| KILL-VERBINDUNG DATABASE Gilt für: Azure SQL-Datenbank. |
CONTROL | ÄNDERN EINER BELIEBIGEN VERBINDUNG |
| REFERENCES | CONTROL | Steuerungsserver |
| SELECT | CONTROL | Steuerungsserver |
| SHOWPLAN | CONTROL | ALTER TRACE |
| ABONNIEREN VON ABFRAGEBENACHRICHTIGUNGEN | CONTROL | Steuerungsserver |
| ÜBERNEHMEN EIGENTUM | CONTROL | Steuerungsserver |
| UNMASK | CONTROL | Steuerungsserver |
| UPDATE | CONTROL | Steuerungsserver |
| VIEWJEDE DEFINITION COLUMN ENCRYPTION KEY | CONTROL | VIEW JEDE DEFINITION |
| VIEWJEDE DEFINITION COLUMN MASTER KEY | CONTROL | VIEW JEDE DEFINITION |
| VIEW DATABASE STAAT | CONTROL | VIEW SERVERSTATUS |
| VIEW DEFINITION | CONTROL | VIEW JEDE DEFINITION |
Permissions
Der Erteiler (oder der mit der AS-Option angegebene Prinzipal) muss entweder die Erlaubnis selbst mit GRANT OPTION haben oder eine höhere Genehmigung, die die erteilte Erlaubnis impliziert.
Falls die AS-Option verwendet wird, gelten die folgenden zusätzlichen Anforderungen.
| SO granting_principal | Zusätzliche Berechtigung erforderlich |
|---|---|
| Datenbankbenutzer | IMPERSONATE-Berechtigung für den Benutzer, Mitgliedschaft in der festen Datenbankrolle db_securityadmin, Mitgliedschaft in der festen Datenbankrolle db_owner oder Mitgliedschaft in der festen Serverrolle sysadmin. |
| Einem Windows-Anmeldenamen zugeordneter Datenbankbenutzer | IMPERSONATE-Berechtigung für den Benutzer, Mitgliedschaft in der festen Datenbankrolle db_securityadmin, Mitgliedschaft in der festen Datenbankrolle db_owner oder Mitgliedschaft in der festen Serverrolle sysadmin. |
| Einer Windows-Gruppe zugeordneter Datenbankbenutzer | Mitgliedschaft in der Windows-Gruppe, Mitgliedschaft in der festen Datenbankrolle db_securityadmin, Mitgliedschaft in der festen Datenbankrolle db_owner oder Mitgliedschaft in der festen Serverrolle sysadmin. |
| Einem Zertifikat zugeordneter Datenbankbenutzer | Mitgliedschaft in der festen Datenbankrolle db_securityadmin, Mitgliedschaft in der festen Datenbankrolle db_owner oder Mitgliedschaft in der festen Serverrolle sysadmin. |
| Einem asymmetrischen Schlüssel zugeordneter Datenbankbenutzer | Mitgliedschaft in der festen Datenbankrolle db_securityadmin, Mitgliedschaft in der festen Datenbankrolle db_owner oder Mitgliedschaft in der festen Serverrolle sysadmin. |
| Einem Serverprinzipal zugeordneter Datenbankbenutzer | IMPERSONATE-Berechtigung für den Benutzer, Mitgliedschaft in der festen Datenbankrolle db_securityadmin, Mitgliedschaft in der festen Datenbankrolle db_owner oder Mitgliedschaft in der festen Serverrolle sysadmin. |
| Datenbankrolle | ALTER-Berechtigung für die Rolle, Mitgliedschaft in der festen Datenbankrolle db_securityadmin, Mitgliedschaft in der festen Datenbankrolle db_owner oder Mitgliedschaft in der festen Serverrolle sysadmin. |
| Anwendungsrolle | ALTER-Berechtigung für die Rolle, Mitgliedschaft in der festen Datenbankrolle db_securityadmin, Mitgliedschaft in der festen Datenbankrolle db_owner oder Mitgliedschaft in der festen Serverrolle sysadmin. |
Objektbesitzer können Berechtigungen für die Objekte erteilen, die sie besitzen. Prinzipale mit CONTROL-Berechtigung für ein sicherungsfähiges Element können die Berechtigung für dieses sicherungsfähige Element erteilen.
Empfänger der CONTROL SERVER-Berechtigung, wie z. B. Mitglieder der festen Serverrolle sysadmin, können jede beliebige Berechtigung für jedes beliebige sicherungsfähige Element auf dem Server erteilen.
Examples
A. Erteilen der Berechtigung zum Erstellen von Tabellen
Im folgenden Beispiel wird die CREATE TABLE-Berechtigung für die AdventureWorks-Datenbank dem Benutzer MelanieK erteilt.
USE AdventureWorks;
GRANT CREATE TABLE TO MelanieK;
GO
B. Erteilen der SHOWPLAN-Berechtigung für eine Anwendungsrolle
Im folgenden Beispiel wird die SHOWPLAN-Berechtigung für die AdventureWorks2025-Datenbank der Anwendungsrolle AuditMonitor erteilt.
Gilt für: SQL Server 2008 (10.0.x) und höher sowie SQL-Datenbank
USE AdventureWorks2022;
GRANT SHOWPLAN TO AuditMonitor;
GO
C. Gewährung CREATE VIEW mit GRANT OPTION
Im folgenden Beispiel wird die CREATE VIEW-Berechtigung für die AdventureWorks2025-Datenbank dem Benutzer CarmineEs mit dem Recht zum Erteilen der CREATE VIEW-Berechtigung für andere Prinzipale erteilt.
USE AdventureWorks2022;
GRANT CREATE VIEW TO CarmineEs WITH GRANT OPTION;
GO
D. Erteilen einer CONTROL-Berechtigung für einen Datenbankbenutzer
Im folgenden Beispiel wird die CONTROL-Berechtigung für die AdventureWorks2025-Datenbank dem Datenbankbenutzer Sarah erteilt. Der Benutzer muss in der Datenbank vorhanden und der Kontext muss auf die Datenbank festgelegt sein.
USE AdventureWorks2022;
GRANT CONTROL ON DATABASE::AdventureWorks2022 TO Sarah;
GO