GRANT (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-Endpunkt in Microsoft FabricWarehouse in Microsoft Fabric

Erteilt einem Prinzipal Berechtigungen für ein sicherungsfähiges Element. Das allgemeine Konzept ist .GRANT <some permission> ON <some object> TO <some user, login, or group> Eine allgemeine Diskussion zu Berechtigungen finden Sie unter Berechtigungen (Datenbank-Engine).

Transact-SQL-Syntaxkonventionen

Syntax

Syntax für SQL Server und Azure SQL-Datenbank

-- Simplified syntax for GRANT
GRANT { ALL [ PRIVILEGES ] }
      | permission [ ( column [ , ...n ] ) ] [ , ...n ]
      [ ON [ class :: ] securable ] TO principal [ , ...n ]
      [ WITH GRANT OPTION ] [ AS principal ]

Syntax für Azure Synapse Analytics und Parallel Data Warehouse und Microsoft Fabric.

GRANT
    <permission> [ , ...n ]
    [ ON [ <class_type> :: ] securable ]
    TO principal [ , ...n ]
    [ WITH GRANT OPTION ]
[;]

<permission> ::=
{ see the tables below }

<class_type> ::=
{
      LOGIN
    | DATABASE
    | OBJECT
    | ROLE
    | SCHEMA
    | USER
}

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.

Argumente

ALL

Diese Option ist als veraltet markiert und wird nur aus Gründen der Abwärtskompatibilität beibehalten. Sie gewährt nicht alle möglichen Berechtigungen. Die Gewährung ALL entspricht der Gewährung der folgenden Berechtigungen.

Sicherungsfähiges Element Berechtigungen
Datenbank BACKUP DATABASE, BACKUP LOG, CREATE DATABASECREATE DEFAULTCREATE PROCEDURECREATE FUNCTION, CREATE RULE, , , , und CREATE TABLECREATE VIEW
Skalarfunktion EXECUTE und REFERENCES
Tabellenwertfunktion DELETE, INSERT, REFERENCES, SELECT und UPDATE
Gespeicherte Prozedur EXECUTE
Tabelle DELETE, INSERT, REFERENCES, SELECT und UPDATE
Ansicht DELETE, INSERT, REFERENCES, SELECT und UPDATE

PRIVILEGES

Aus Gründen der Kompatibilität mit ISO eingeschlossen. Ändert nicht das Verhalten von ALL.

permission

Der Name einer Berechtigung. Die gültigen Zuordnungen von Berechtigungen zu sicherungsfähigen Daten werden in den folgenden Abschnitten beschrieben.

column

Gibt den Namen einer Spalte in einer Tabelle an, für die Berechtigungen erteilt werden. Die Klammern ( und ) sind erforderlich.

class

Gibt die Klasse des sicherungsfähigen Elements an, für das die Berechtigung erteilt wird. Der Bereichsqualifizierer :: ist erforderlich.

securable

Gibt das sicherungsfähige Element an, für das die Berechtigung erteilt wird.

TO principal

Der Name eines Prinzipals. Die Prinzipale, für die Berechtigungen für ein sicherungsfähiges Element erteilt werden können, sind abhängig vom jeweiligen sicherungsfähigen Element unterschiedlich. In den folgenden Abschnitten finden Sie gültige Kombinationen.

GRANT OPTION

Gibt an, dass der Empfänger die angegebene Berechtigung auch anderen Prinzipalen erteilen kann.

AS principal

Verwenden Sie die AS <principal> Klausel, um anzugeben, dass der Als Geber der Berechtigung aufgezeichnete Prinzipal ein anderer Prinzipal als die Person sein soll, die die Anweisung ausführt. Nehmen Wir beispielsweise an, dass der Benutzer Mary einen principal_id von 12, und der Benutzer Raul ist Prinzipal 15. Mary führt jetzt aus, die sys.database_permissions Tabelle gibt an, dass die grantor_prinicpal_id Anweisung () obwohl 15Rauldie Anweisung tatsächlich vom Benutzer 12 (Mary) ausgeführt GRANT SELECT ON OBJECT::X TO Steven WITH GRANT OPTION AS Raul; wurde.

Die Verwendung der Klausel wird in der AS Regel nur empfohlen, wenn Sie die Berechtigungskette explizit definieren müssen. Weitere Informationen finden Sie in der Zusammenfassung des Berechtigungsprüfungsalgorithmus.

Die Verwendung AS in dieser Anweisung impliziert nicht die Fähigkeit, einen anderen Benutzer zu imitieren.

Hinweise

Die vollständige Syntax der GRANT Anweisung ist komplex. Das vorherige Syntaxdiagramm wurde vereinfacht, um die Aufmerksamkeit auf seine Struktur zu lenken. Die vollständige Syntax zum Erteilen von Berechtigungen für bestimmte sicherungsfähige Elemente wird in den artikeln beschrieben, die weiter unten in diesem Artikel aufgeführt sind.

Die REVOKE Anweisung kann verwendet werden, um erteilte Berechtigungen zu entfernen, und die DENY Anweisung kann verwendet werden, um zu verhindern, dass ein Prinzipal eine bestimmte Berechtigung über eine .GRANT

Das Erteilen einer Berechtigung entfernt DENY oder REVOKE von dieser Berechtigung für die angegebene sicherungsfähige Berechtigung. Wenn dieselbe Berechtigung in einem höheren Bereich verweigert wird, der die sicherungsfähige Berechtigung enthält, hat dies DENY Vorrang. Das Widerrufen der erteilten Berechtigung in einem höheren Bereich hat jedoch keine Vorrang.

Berechtigungen auf Datenbankebene werden innerhalb des Bereichs der angegebenen Datenbank erteilt. Wenn ein Benutzer Berechtigungen für Objekte in einer anderen Datenbank benötigt, erstellen Sie das Benutzerkonto in der anderen Datenbank oder erteilen dem Benutzerkonto Zugriff auf die aktuelle Datenbank und auf die andere Datenbank.

Achtung

Eine Tabellenebene DENY hat keine Vorrang vor einer Spaltenebene GRANT. Diese Inkonsistenz in der Berechtigungshierarchie wurde aus Gründen der Abwärtskompatibilität beibehalten. Dieses Element wird in einer späteren Version entfernt.

Die sp_helprotect gespeicherte Systemprozedur meldet Berechtigungen für eine sicherungsfähige Datenbankebene.

In Microsoft Fabric CREATE USER kann derzeit nicht explizit ausgeführt werden. Wenn GRANT oder DENY ausgeführt wird, wird der Benutzer automatisch erstellt.

WITH GRANT OPTION

Dies GRANT ... WITH GRANT OPTION gibt an, dass der Sicherheitsprinzipal, der die Berechtigung erhält, über die Möglichkeit verfügt, anderen Sicherheitskonten die angegebene Berechtigung zu erteilen. Wenn der Prinzipal, der die Berechtigung erhält, eine Rolle oder eine Windows-Gruppe ist, muss die AS Klausel verwendet werden, wenn die Objektberechtigung weiteren Benutzern gewährt werden muss, die keine Mitglieder der Gruppe oder Rolle sind. Da nur ein Benutzer anstelle einer Gruppe oder Rolle eine GRANT Anweisung ausführen kann, muss ein bestimmtes Mitglied der Gruppe oder Rolle die AS Klausel verwenden, um die Rolle oder Gruppenmitgliedschaft explizit aufzurufen, wenn die Berechtigung erteilt wird. Im folgenden Beispiel wird gezeigt, wie dies WITH GRANT OPTION verwendet wird, wenn sie einer Rolle oder Einer Windows-Gruppe erteilt wird.

-- Execute the following as a database owner
GRANT EXECUTE ON TestProc TO TesterRole WITH GRANT OPTION;
EXEC sp_addrolemember TesterRole, User1;

-- Execute the following as User1
-- The following fails because User1 does not have the permission as the User1
GRANT EXECUTE ON TestProc TO User2;

-- The following succeeds because User1 invokes the TesterRole membership
GRANT EXECUTE ON TestProc TO User2 AS TesterRole;

Diagramm der SQL Server-Berechtigungen

Ein Posterdiagramm mit allen Datenbank-Engine Berechtigungen im PDF-Format finden Sie unter https://aka.ms/sql-permissions-poster.

Berechtigungen

Der Grantor (oder der mit der AS Option angegebene Prinzipal) muss entweder über die Berechtigung selbst GRANT OPTIONoder eine höhere Berechtigung verfügen, die die erteilte Berechtigung impliziert. Wenn Sie die AS Option verwenden, gelten zusätzliche Anforderungen. Weitere Informationen hierzu finden Sie im Artikel zu sicherungsfähigen Elementen.

Objektbesitzer können Berechtigungen für die Objekte erteilen, die sie besitzen. Prinzipale mit CONTROL Berechtigungen für eine sicherungsfähige Berechtigung können diese sicherungsfähigen Berechtigungen erteilen.

Berechtigungsempfänger CONTROL SERVER , z. B. Mitglieder der festen Serverrolle sysadmin , können jede Berechtigung für alle sicherungsfähigen Elemente auf dem Server erteilen. Erteilte CONTROL Berechtigungen für eine Datenbank, z. B. Mitglieder der db_owner festen Datenbankrolle, können jede Berechtigung für alle sicherungsfähigen Elemente in der Datenbank erteilen. Erteilte Berechtigungen CONTROL für ein Schema können beliebige Berechtigungen für jedes Objekt innerhalb des Schemas erteilen.

Beispiele

In der folgenden Tabelle sind die sicherungsfähigen Elemente und Artikel aufgeführt, in denen die für sicherungsfähige Elemente spezifische Syntax beschrieben wird.

Sicherungsfähiges Element Syntax von GRANT
Anwendungsrolle GRANT (Berechtigungen für Datenbankprinzipal) (Transact-SQL)
Assembly GRANT-Assemblyberechtigungen (Transact-SQL)
Asymmetrischer Schlüssel GRANT (Berechtigungen für asymmetrische Schlüssel) (Transact-SQL)
Verfügbarkeitsgruppe Erteilen von Verfügbarkeitsgruppenberechtigungen mit GRANT (Transact-SQL)
Zertifikat GRANT (Zertifikatberechtigungen) (Transact-SQL)
Vertrag GRANT (Berechtigungen von Service Broker) (Transact-SQL)
Datenbank GRANT (Datenbankberechtigungen) (Transact-SQL)
Datenbankweit gültige Anmeldeinformationen GRANT (Datenbankweit gültige Anmeldeinformationen) (Transact-SQL)
Endpunkt GRANT (Endpunktberechtigungen) (Transact-SQL)
Volltextkatalog GRANT-Berechtigungen für Volltext (Transact-SQL)
Volltext-Stoppliste GRANT-Berechtigungen für Volltext (Transact-SQL)
Funktion GRANT (Objektberechtigungen) (Transact-SQL)
Anmeldename GRANT (Berechtigungen für Serverprinzipal) (Transact-SQL)
Nachrichtentyp GRANT (Berechtigungen von Service Broker) (Transact-SQL)
Object GRANT (Objektberechtigungen) (Transact-SQL)
Warteschlange GRANT (Objektberechtigungen) (Transact-SQL)
Remotedienstbindung GRANT (Berechtigungen von Service Broker) (Transact-SQL)
Role GRANT (Berechtigungen für Datenbankprinzipal) (Transact-SQL)
Route GRANT (Berechtigungen von Service Broker) (Transact-SQL)
Schema GRANT-Schemaberechtigungen (Transact-SQL)
Sucheigenschaftenliste GRANT-Sucheigenschaftenlisten-Berechtigungen (Transact-SQL)
Server GRANT (Serverberechtigungen) (Transact-SQL)
Dienst GRANT (Berechtigungen von Service Broker) (Transact-SQL)
Gespeicherte Prozedur GRANT (Objektberechtigungen) (Transact-SQL)
Symmetrischer Schlüssel GRANT (Berechtigungen für symmetrische Schlüssel) (Transact-SQL)
Synonym GRANT (Objektberechtigungen) (Transact-SQL)
Systemobjekte GRANT (Berechtigungen für Systemobjekte) (Transact-SQL)
Tabelle GRANT (Objektberechtigungen) (Transact-SQL)
Type GRANT (Typberechtigungen) (Transact-SQL)
Benutzer GRANT (Berechtigungen für Datenbankprinzipal) (Transact-SQL)
Sicht GRANT (Objektberechtigungen) (Transact-SQL)
XML-Schemasammlung GRANT (Berechtigungen für XML-Schemaauflistungen) (Transact-SQL)