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

Gilt für:SQL ServerAzure SQL Managed Instance

Verweigert Berechtigungen, die für einen SQL Server-Anmeldenamen erteilt wurden.

Transact-SQL-Syntaxkonventionen

Syntax

DENY permission [ ,...n ] }   
    ON   
    { [ LOGIN :: SQL_Server_login ]  
      | [ SERVER ROLE :: server_role ] }   
    TO <server_principal> [ ,...n ]  
    [ CASCADE ]  
    [ 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   
    | server_role  

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

permission
Gibt eine Berechtigung an, die für einen SQL Server-Anmeldenamen verweigert 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 verweigert wird. Der Bereichsqualifizierer ( :: ) ist erforderlich.

SERVER ROLE ::server_role
Gibt den die Serverrolle an, für die die Berechtigung verweigert wird. Der Bereichsqualifizierer ( :: ) ist erforderlich.

TO <Dienstprinzipal>
Gibt den SQL Server-Anmeldenamen oder die Serverrolle an, denen die Berechtigung erteilt wird.

TO SQL_Server_login
Gibt den SQL Server-Anmeldenamen an, für den die Berechtigung verweigert 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.

server_role
Gibt den Namen der einer Serverrolle an.

CASCADE
Gibt an, dass die verweigerte Berechtigung auch anderen Prinzipalen verweigert wird, denen diese Berechtigung von diesem Prinzipal erteilt wurde.

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

Bemerkungen

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

Informationen zu Serverberechtigungen können der Katalogsicht sys.server_permissions entnommen werden. Informationen zu Serverprinzipalen können der sys.server_principals-Katalogsicht entnommen werden.

Die DENY-Anweisung erzeugt einen Fehler, wenn CASCADE beim Verweigern einer Berechtigung für einen Prinzipal, dem diese Berechtigung mit GRANT OPTION erteilt wurde, nicht angegeben ist.

SQL Server-Anmeldenamen und Serverrollen sind sicherungsfähige Elemente auf Serverebene. Die spezifischsten und restriktivsten Berechtigungen, die für einen SQL Server-Anmeldenamen oder eine Serverrolle verweigert werden können, sind unten aufgeführt. Auch die allgemeineren Berechtigungen sind aufgeführt, die diese implizit enthalten.

SQL Server-Anmeldename oder Serverrollenberechtigung Impliziert durch SQL Server-Anmeldename oder Serverrollenberechtigung Impliziert durch die Serverberechtigung
CONTROL CONTROL CONTROL SERVER
IMPERSONATE CONTROL CONTROL SERVER
VIEW DEFINITION CONTROL VIEW ANY DEFINITION
ALTER CONTROL ALTER ANY LOGIN

ALTER ANY SERVER ROLE

Berechtigungen

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

Erfordert bei Serverrollen die CONTROL-Berechtigung für die Serverrolle oder die ALTER ANY SERVER ROLE-Berechtigung für den Server.

Beispiele

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

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

USE master;  
DENY IMPERSONATE ON LOGIN::WanidaBenshoof TO [AdvWorks\YoonM];  
GO  

B. Verweigern der VIEW DEFINITION-Berechtigung mit CASCADE

Im folgenden Beispiel wird die VIEW DEFINITION-Berechtigung für den SQL Server-Anmeldenamen EricKurjan dem SQL Server-Anmeldenamen RMeyyappan verweigert. Mit der CASCADE-Option wird angegeben, dass die VIEW DEFINITION-Berechtigung für EricKurjan ebenfalls für die Prinzipale verweigert wird, denen diese Berechtigung von RMeyyappan erteilt wurde.

USE master;  
DENY VIEW DEFINITION ON LOGIN::EricKurjan TO RMeyyappan   
    CASCADE;  
GO   

C. Verweigern der VIEW DEFINITION-Berechtigung für eine Serverrolle

Im folgenden Beispiel wird VIEW DEFINITION für die Serverrolle Sales in der Serverrolle Auditors verweigert.

USE master;  
DENY VIEW DEFINITION ON SERVER ROLE::Sales TO Auditors ;  
GO   

Weitere Informationen

sys.server_principals (Transact-SQL)
sys.server_permissions (Transact-SQL)
GRANT (Berechtigungen für Serverprinzipal) (Transact-SQL)
REVOKE (Berechtigungen für Serverprinzipal) (Transact-SQL)
CREATE LOGIN (Transact-SQL)
Prinzipale (Datenbank-Engine)
Berechtigungen (Datenbank-Engine)
Sicherheitsfunktionen (Transact-SQL)
Gespeicherte Sicherheitsprozeduren (Transact-SQL)