GRANT (Berechtigungen für Serverprinzipal) (Transact-SQL)

Erteilt Berechtigungen für einen SQL Server-Anmeldenamen.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

GRANT permission [ ,...n ] } 
    ON LOGIN :: SQL_Server_login
        TO <server_principal> [ ,...n ]
    [ WITH GRANT OPTION ]
    [ AS SQL_Server_login ] 

<server_principal> ::= 
        SQL_Server_login
    | SQL_Server_login_from_Windows_login 
    | SQL_Server_login_from_certificate 
    | SQL_Server_login_from_AsymKey

Argumente

  • permission
    Gibt eine Berechtigung an, die für einen SQL Server-Anmeldenamen erteilt werden kann. Eine Liste der Berechtigungen finden Sie im Abschnitt zu den Hinweisen weiter unten in diesem Thema.

  • LOGIN :: SQL_Server_login
    Gibt den SQL Server-Anmeldenamen an, für den die Berechtigung erteilt wird. Der Bereichsqualifizierer (::) ist erforderlich.

  • TO <server_principal>
    Gibt den SQL Server-Anmeldenamen an, dem die Berechtigung erteilt wird.

  • SQL_Server_login
    Gibt einen SQL Server-Anmeldenamen an.

  • SQL_Server_login_from_Windows_login
    Gibt einen aus einem Windows-Anmeldenamen erstellten SQL Server-Anmeldenamen an.

  • SQL_Server_login_from_certificate
    Gibt einen einem Zertifikat zugeordneten SQL Server-Anmeldenamen an.

  • SQL_Server_login_from_AsymKey
    Gibt einen einem asymmetrischen Schlüssel zugeordneten SQL Server-Anmeldenamen an.

  • WITH GRANT OPTION
    Gibt an, dass der Prinzipal die angegebene Berechtigung auch anderen Prinzipalen erteilen kann.

  • AS SQL_Server_login
    Gibt den SQL Server-Anmeldenamen an, von dem der Prinzipal, der diese Abfrage ausführt, sein Recht zum Erteilen der Berechtigung ableitet.

Hinweise

Berechtigungen im Serverbereich können nur erteilt werden, wenn als aktuelle Datenbank master verwendet wird.

Informationen zu Serverberechtigungen werden in der sys.server_permissions-Katalogsicht angezeigt. Informationen zu Serverprinzipalen werden in der sys.server_principals-Katalogsicht angezeigt.

Ein SQL Server-Anmeldename ist ein sicherungsfähiges Element auf Serverebene. Die spezifischsten und restriktivsten Berechtigungen, die für einen SQL Server-Anmeldenamen erteilt werden können, sind unten aufgeführt. Auch die allgemeineren Berechtigungen sind aufgeführt, die diese implizit enthalten.

Berechtigung für SQL Server-Anmeldenamen

Impliziert durch die Berechtigung für SQL Server-Anmeldenamen

Impliziert durch die Serverberechtigung

CONTROL

CONTROL

CONTROL SERVER

IMPERSONATE

CONTROL

CONTROL SERVER

VIEW DEFINITION

CONTROL

VIEW ANY DEFINITION

ALTER

CONTROL

ALTER ANY LOGIN

Berechtigungen

Erfordert die CONTROL-Berechtigung für den Anmeldenamen oder die ALTER ANY LOGIN-Berechtigung für den Server.

Beispiele

A. Erteilen der IMPERSONATE-Berechtigung für einen Anmeldenamen

Im folgenden Beispiel wird die IMPERSONATE-Berechtigung für den SQL Server-Anmeldenamen WanidaBenshoof einem SQL Server-Anmeldenamen erteilt, der aus dem Windows-Benutzer AdvWorks\YoonM erstellt wurde.

USE master;
GRANT IMPERSONATE ON LOGIN::WanidaBenshoof to [AdvWorks\YoonM];
GO

B. Erteilen der VIEW DEFINITION-Berechtigung mit GRANT OPTION

Im folgenden Beispiel wird die VIEW DEFINITION-Berechtigung für den SQL Server-Anmeldenamen EricKurjan dem SQL Server-Anmeldenamen RMeyyappan mit GRANT OPTION erteilt.

USE master;
GRANT VIEW DEFINITION ON LOGIN::EricKurjan TO RMeyyappan 
    WITH GRANT OPTION;
GO