GRANT (Transact-SQL)GRANT (Transact-SQL)

DIESES THEMA GILT FÜR: jaSQL Server (ab 2008)jaAzure SQL-DatenbankjaAzure SQL Data Warehouse jaParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL Server (starting with 2008)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

Erteilt einem Prinzipal Berechtigungen für ein sicherungsfähiges Element.Grants permissions on a securable to a principal. Das allgemeine Konzept entspricht GRANT <bestimmte Berechtigungen > ON <ein Objekt > TO <einige Benutzer, Anmeldenamen oder Gruppe >.The general concept is to GRANT <some permission> ON <some object> TO <some user, login, or group>. Eine allgemeine Beschreibung der Berechtigungen finden Sie unter Berechtigungen ( Datenbankmodul ).For a general discussion of permissions, see Permissions (Database Engine).

Themenlinksymbol Transact-SQL Syntax Conventions (Transact-SQL-Syntaxkonventionen)Topic link icon Transact-SQL Syntax Conventions

SyntaxSyntax

-- Syntax for SQL Server and Azure SQL Database  

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

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  
}  

ArgumenteArguments

ALLALL
Diese Option ist als veraltet markiert und wird nur aus Gründen der Abwärtskompatibilität beibehalten.This option is deprecated and maintained only for backward compatibility. Damit werden nicht alle möglichen Berechtigungen erteilt.It does not grant all possible permissions. Das Erteilen mit ALL entspricht dem Erteilen der folgenden Berechtigungen.Granting ALL is equivalent to granting the following permissions.

  • Falls es sich beim sicherungsfähigen Element um eine Datenbank handelt, schließt ALL die Berechtigungen BACKUP DATABASE, BACKUP LOG, CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE und CREATE VIEW ein.If the securable is a database, ALL means BACKUP DATABASE, BACKUP LOG, CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE, and CREATE VIEW.

  • Falls es sich beim sicherungsfähigen Element um eine skalare Funktion handelt, schließt ALL die Berechtigungen EXECUTE und REFERENCES ein.If the securable is a scalar function, ALL means EXECUTE and REFERENCES.

  • Falls es sich beim sicherungsfähigen Element um eine Tabellenwertfunktion handelt, schließt ALL die Berechtigungen DELETE, INSERT, REFERENCES, SELECT und UPDATE ein.If the securable is a table-valued function, ALL means DELETE, INSERT, REFERENCES, SELECT, and UPDATE.

  • Falls es sich beim sicherungsfähigen Element um eine gespeicherte Prozedur handelt, steht ALL für EXECUTE.If the securable is a stored procedure, ALL means EXECUTE.

  • Falls es sich beim sicherungsfähigen Element um eine Tabelle handelt, schließt ALL die Berechtigungen DELETE, INSERT, REFERENCES, SELECT und UPDATE ein.If the securable is a table, ALL means DELETE, INSERT, REFERENCES, SELECT, and UPDATE.

  • Falls es sich beim sicherungsfähigen Element um eine Sicht handelt, schließt ALL die Berechtigungen DELETE, INSERT, REFERENCES, SELECT und UPDATE ein.If the securable is a view, ALL means DELETE, INSERT, REFERENCES, SELECT, and UPDATE.

PRIVILEGESPRIVILEGES
Aus Gründen der Kompatibilität mit ISO eingeschlossen.Included for ISO compliance. Ändert das Verhalten von ALL nicht.Does not change the behavior of ALL.

Berechtigungpermission
Der Name einer Berechtigung.Is the name of a permission. Die gültigen Zuordnungen von Berechtigungen zu sicherungsfähigen Elementen sind in den im Folgenden aufgeführten untergeordneten Themen beschrieben.The valid mappings of permissions to securables are described in the sub-topics listed below.

Spaltecolumn
Gibt den Namen einer Spalte in einer Tabelle an, für die Berechtigungen erteilt werden.Specifies the name of a column in a table on which permissions are being granted. Die Klammern () sind erforderlich.The parentheses () are required.

Klasseclass
Gibt die Klasse des sicherungsfähigen Elements an, für das die Berechtigung erteilt wird.Specifies the class of the securable on which the permission is being granted. Der bereichsqualifizierer :: ist erforderlich.The scope qualifier :: is required.

sicherungsfähiges Elementsecurable
Gibt das sicherungsfähige Element an, für das die Berechtigung erteilt wird.Specifies the securable on which the permission is being granted.

UM PrinzipalTO principal
Ist der Name eines Prinzipals.Is the name of a principal. 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.The principals to which permissions on a securable can be granted vary, depending on the securable. Gültige Kombinationen finden Sie in den folgenden Unterthemen.See the sub-topics listed below for valid combinations.

GRANT OPTIONGRANT OPTION
Gibt an, dass der Empfänger die angegebene Berechtigung auch anderen Prinzipalen erteilen kann.Indicates that the grantee will also be given the ability to grant the specified permission to other principals.

AS PrinzipalAS principal
Verwenden Sie die Dienstprinzipalname AS-Klausel, um anzugeben, dass der Prinzipal aufgezeichnet, wie der berechtigende (Grantor), der die Berechtigung eines Prinzipals als die Person, die die Anweisung ausgeführt werden soll.Use the AS principal clause to indicate that the principal recorded as the grantor of the permission should be a principal other than the person executing the statement. Beispielsweise annehmen Sie, dass die Benutzerin Mary Principal_id 12 und Benutzer Raul principal 15.For example, presume that user Mary is principal_id 12 and user Raul is principal 15. Andrea führt GRANT SELECT ON OBJECT::X TO Steven WITH GRANT OPTION AS Raul; nun die Tabelle database_permissions angezeigt wird, dass die Grantor_prinicpal_id 15 (Raul) wurde, auch wenn die Anweisung tatsächlich vom Benutzer 13 (Mary) ausgeführt wurde.Mary executes GRANT SELECT ON OBJECT::X TO Steven WITH GRANT OPTION AS Raul; Now the sys.database_permissions table will indicate that the grantor_prinicpal_id was 15 (Raul) even though the statement was actually executed by user 13 (Mary).

Mithilfe der AS-Klausel ist in der Regel nicht empfehlenswert, wenn Sie explizit die Berechtigung Kette definieren müssen.Using the AS clause is typically not recommended unless you need to explicitly define the permission chain. Weitere Informationen finden Sie unter der Statuszusammenfassung der Algorithmus zur Berechtigungsprüfung Abschnitt Berechtigungen (Datenbankmodul).For more information, see the Summary of the Permission Check Algorithm section of Permissions (Database Engine).

Die Verwendung eines wie in dieser Anweisung impliziert nicht die Möglichkeit, die Identität eines anderen Benutzers anzunehmen.The use of AS in this statement does not imply the ability to impersonate another user.

HinweiseRemarks

Die vollständige Syntax der GRANT-Anweisung ist sehr komplex.The full syntax of the GRANT statement is complex. Das Syntaxdiagramm oben wurde vereinfacht, um die Struktur hervorzuheben.The syntax diagram above was simplified to draw attention to its structure. Die vollständige Syntax für das Erteilen von Berechtigungen für spezifische sicherungsfähige Elemente wird in den unten aufgeführten Themen beschrieben.Complete syntax for granting permissions on specific securables is described in the topics listed below.

Die REVOKE-Anweisung kann zum Entfernen von erteilten Berechtigungen verwendet werden, und mit der DENY-Anweisung kann verhindert werden, dass einem Prinzipal eine spezifische Berechtigung durch eine GRANT-Anweisung erteilt wird.The REVOKE statement can be used to remove granted permissions, and the DENY statement can be used to prevent a principal from gaining a specific permission through a GRANT.

Durch das Erteilen einer Berechtigung wird DENY oder REVOKE für diese Berechtigung aus dem angegebenen sicherungsfähigen Element entfernt.Granting a permission removes DENY or REVOKE of that permission on the specified securable. Falls dieselbe Berechtigung aus einem höheren Bereich als dem des sicherungsfähigen Elements verweigert wird, hat DENY Vorrang.If the same permission is denied at a higher scope that contains the securable, the DENY takes precedence. Das Aufheben der erteilten Berechtigung in einem höheren Bereich hat jedoch keinen Vorrang.But revoking the granted permission at a higher scope does not take precedence.

Berechtigungen auf Datenbankebene werden innerhalb des Bereichs der angegebenen Datenbank erteilt.Database-level permissions are granted within the scope of the specified database. 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.If a user needs permissions to objects in another database, create the user account in the other database, or grant the user account access to the other database, as well as the current database.

Achtung

Eine DENY-Anweisung auf Tabellenebene hat keinen Vorrang vor einer GRANT-Anweisung auf Spaltenebene.A table-level DENY does not take precedence over a column-level GRANT. Diese Inkonsistenz in der Berechtigungshierarchie wurde aus Gründen der Abwärtskompatibilität beibehalten.This inconsistency in the permissions hierarchy has been preserved for the sake of backward compatibility. Dieses Verhalten wird in einer zukünftigen Version entfernt.It will be removed in a future release.

Die gespeicherte Systemprozedur sp_helprotect gibt Informationen zu Berechtigungen für sicherungsfähige Elemente auf Datenbankebene zurück.The sp_helprotect system stored procedure reports permissions on a database-level securable.

WITH GRANT OPTIONWITH GRANT OPTION

Die GRANT ...The GRANT MIT GRANT OPTION gibt an, dass der Sicherheitsprinzipal, der die Berechtigung erhält anderen Sicherheitskonten die angegebene Berechtigung zu erteilen angegeben wird.WITH GRANT OPTION specifies that the security principal receiving the permission is given the ability to grant the specified permission to other security accounts. Wenn der Prinzipal, der die Berechtigung empfängt eine Rolle oder eine Windows-Gruppe ist die AS -Klausel muss verwendet werden, wenn die Objektberechtigung muss, um weiteren Benutzern gewährt werden, die nicht Mitglieder der Gruppe oder Rolle sind.When the principal that receives the permission is a role or a Windows group, the AS clause must be used when the object permission needs to be further granted to users who are not members of the group or role. Da nur ein Benutzer anstelle einer Gruppe oder Rolle ausführen kann ein GRANT -Anweisung, die ein bestimmtes Mitglied der Gruppe oder Rolle verwenden muss die AS -Klausel, um die Rollen- oder Gruppenmitgliedschaft explizit aufrufen, wenn er gewährt die Berechtigung.Because only a user, rather than a group or role, can execute a GRANT statement, a specific member of the group or role must use the AS clause to explicitly invoke the role or group membership when granting the permission. Das folgende Beispiel zeigt wie die WITH GRANT OPTION wird verwendet, wenn eine Rolle oder einen Windows-Gruppe gewährt.The following example shows how the WITH GRANT OPTION is used when granted to a role or Windows group.

-- 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 TestMe TO User2;  
-- The following succeeds because User1 invokes the TesterRole membership  
GRANT EXECUTE ON TestMe TO User2 AS TesterRole;  

Diagramm der SQL Server-BerechtigungenChart of SQL Server Permissions

Navigieren Sie zu http://go.microsoft.com/fwlink/?LinkId=229142 , um ein Diagramm aller DatenbankmodulDatabase Engine-Berechtigungen in Postergröße im PDF-Format abzurufen.For a poster sized chart of all DatenbankmodulDatabase Engine permissions in pdf format, see http://go.microsoft.com/fwlink/?LinkId=229142.

BerechtigungenPermissions

Der Berechtigende (oder der mit der AS-Option angegebene Prinzipal) benötigt entweder die Berechtigung selbst mit GRANT OPTION oder eine höhere Berechtigung, die die erteilte Berechtigung impliziert.The grantor (or the principal specified with the AS option) must have either the permission itself with GRANT OPTION, or a higher permission that implies the permission being granted. Falls die AS-Option verwendet wird, gelten zusätzliche Anforderungen.If using the AS option, additional requirements apply. Weitere Informationen hierzu finden Sie in den Themen zu einzelnen sicherungsfähigen Elementen.See the securable-specific topic for details.

Objektbesitzer können Berechtigungen für die Objekte erteilen, die sie besitzen.Object owners can grant permissions on the objects they own. Prinzipale mit CONTROL-Berechtigung für ein sicherungsfähiges Element können die Berechtigung für dieses sicherungsfähige Element erteilen.Principals with CONTROL permission on a securable can grant permission on that securable.

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.Grantees of CONTROL SERVER permission, such as members of the sysadmin fixed server role, can grant any permission on any securable in the server. Empfänger der CONTROL-Berechtigung in einer Datenbank, z. B. Mitglieder der festen Datenbankrolle db_owner, können jede Berechtigung für ein beliebiges sicherungsfähiges Element in der Datenbank erteilen.Grantees of CONTROL permission on a database, such as members of the db_owner fixed database role, can grant any permission on any securable in the database. Empfänger der CONTROL-Berechtigung für ein Schema können jede beliebige Berechtigung für jedes Objekt innerhalb des Schemas erteilen.Grantees of CONTROL permission on a schema can grant any permission on any object within the schema.

BeispieleExamples

In der folgenden Tabelle sind die sicherungsfähigen Elemente und Themen aufgeführt, in denen die für ein sicherungsfähiges Element spezifische Syntax beschrieben wird.The following table lists the securables and the topics that describe the securable-specific syntax.

AnwendungsrolleApplication Role GRANT-Berechtigungen für Datenbankprinzipal ( Transact-SQL )GRANT Database Principal Permissions (Transact-SQL)
AssemblyAssembly GRANT-Assemblyberechtigungen ( Transact-SQL )GRANT Assembly Permissions (Transact-SQL)
Asymmetrischer SchlüsselAsymmetric Key Erteilen Sie Berechtigungen für asymmetrische Schlüssel ( Transact-SQL )GRANT Asymmetric Key Permissions (Transact-SQL)
VerfügbarkeitsgruppeAvailability Group Erteilen von Verfügbarkeitsgruppenberechtigungen ( Transact-SQL )GRANT Availability Group Permissions (Transact-SQL)
ZertifikatCertificate GRANT (Zertifikatberechtigungen) ( Transact-SQL )GRANT Certificate Permissions (Transact-SQL)
VertragContract Berechtigungen von GRANT Service Broker ( Transact-SQL )GRANT Service Broker Permissions (Transact-SQL)
DatenbankDatabase Erteilen der Datenbankberechtigungen ( Transact-SQL )GRANT Database Permissions (Transact-SQL)
Datenbankweit gültige AnmeldeinformationenDatabase Scoped Credential GRANT datenbankweit gültige Anmeldeinformationen (Transact-SQL)GRANT Database Scoped Credential (Transact-SQL)
EndpunktEndpoint GRANT (Endpunktberechtigungen) ( Transact-SQL )GRANT Endpoint Permissions (Transact-SQL)
VolltextkatalogFull-Text Catalog Berechtigungen GRANT Full-Text ( Transact-SQL )GRANT Full-Text Permissions (Transact-SQL)
Volltext-StopplisteFull-Text Stoplist Berechtigungen GRANT Full-Text ( Transact-SQL )GRANT Full-Text Permissions (Transact-SQL)
FunktionFunction Erteilen von Objektberechtigungen ( Transact-SQL )GRANT Object Permissions (Transact-SQL)
AnmeldenameLogin GRANT-Berechtigungen für Serverprinzipal ( Transact-SQL )GRANT Server Principal Permissions (Transact-SQL)
NachrichtentypMessage Type Berechtigungen von GRANT Service Broker ( Transact-SQL )GRANT Service Broker Permissions (Transact-SQL)
ObjektObject Erteilen von Objektberechtigungen ( Transact-SQL )GRANT Object Permissions (Transact-SQL)
WarteschlangeQueue Erteilen von Objektberechtigungen ( Transact-SQL )GRANT Object Permissions (Transact-SQL)
RemotedienstbindungRemote Service Binding Berechtigungen von GRANT Service Broker ( Transact-SQL )GRANT Service Broker Permissions (Transact-SQL)
RolleRole GRANT-Berechtigungen für Datenbankprinzipal ( Transact-SQL )GRANT Database Principal Permissions (Transact-SQL)
RouteRoute Berechtigungen von GRANT Service Broker ( Transact-SQL )GRANT Service Broker Permissions (Transact-SQL)
SchemaSchema GRANT-Schemaberechtigungen ( Transact-SQL )GRANT Schema Permissions (Transact-SQL)
SucheigenschaftenlisteSearch Property List GRANT-Sucheigenschaftenlisten-Berechtigungen ( Transact-SQL )GRANT Search Property List Permissions (Transact-SQL)
ServerServer GRANT (Serverberechtigungen) (Transact-SQL)GRANT Server Permissions (Transact-SQL)
DienstService Berechtigungen von GRANT Service Broker ( Transact-SQL )GRANT Service Broker Permissions (Transact-SQL)
Gespeicherte ProzedurStored Procedure Erteilen von Objektberechtigungen ( Transact-SQL )GRANT Object Permissions (Transact-SQL)
Symmetrische SchlüsselSymmetric Key Erteilen Sie Berechtigungen für symmetrische Schlüssel ( Transact-SQL )GRANT Symmetric Key Permissions (Transact-SQL)
SynonymSynonym Erteilen von Objektberechtigungen ( Transact-SQL )GRANT Object Permissions (Transact-SQL)
Systemobjekte anzeigenSystem Objects GRANT (Berechtigungen für Systemobjekte) (Transact-SQL)GRANT System Object Permissions (Transact-SQL)
TabelleTable Erteilen von Objektberechtigungen ( Transact-SQL )GRANT Object Permissions (Transact-SQL)
TypType GRANT (Typberechtigungen) ( Transact-SQL )GRANT Type Permissions (Transact-SQL)
BenutzerUser GRANT-Berechtigungen für Datenbankprinzipal ( Transact-SQL )GRANT Database Principal Permissions (Transact-SQL)
SichtView Erteilen von Objektberechtigungen ( Transact-SQL )GRANT Object Permissions (Transact-SQL)
XML-SchemasammlungXML Schema Collection Erteilen Sie Berechtigungen für XML-Schemaauflistungen ( Transact-SQL )GRANT XML Schema Collection Permissions (Transact-SQL)

Siehe auchSee Also

DENY (Transact-SQL) DENY (Transact-SQL)
REVOKE (Transact-SQL) REVOKE (Transact-SQL)
sp_addlogin (Transact-SQL) sp_addlogin (Transact-SQL)
sp_adduser (Transact-SQL) sp_adduser (Transact-SQL)
Sp_changedbowner ( Transact-SQL ) sp_changedbowner (Transact-SQL)
sp_dropuser (Transact-SQL) sp_dropuser (Transact-SQL)
Sp_helprotect ( Transact-SQL ) sp_helprotect (Transact-SQL)
Sp_helpuser ( Transact-SQL )sp_helpuser (Transact-SQL)