Teilen über


DENY (Serverberechtigungen) (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed Instance

Verweigert Berechtigungen für einen Server.

Transact-SQL-Syntaxkonventionen

Syntax

DENY permission [ ,...n ]   
    TO <grantee_principal> [ ,...n ]  
    [ CASCADE ]  
    [ AS <grantor_principal> ]   
  
<grantee_principal> ::= SQL_Server_login   
    | SQL_Server_login_mapped_to_Windows_login  
    | SQL_Server_login_mapped_to_Windows_group  
    | SQL_Server_login_mapped_to_certificate  
    | SQL_Server_login_mapped_to_asymmetric_key  
    | server_role  
  
<grantor_principal> ::= SQL_Server_login   
    | SQL_Server_login_mapped_to_Windows_login  
    | SQL_Server_login_mapped_to_Windows_group  
    | SQL_Server_login_mapped_to_certificate  
    | SQL_Server_login_mapped_to_asymmetric_key  
    | server_role  

Argumente

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

CASCADE
Gibt an, dass die Berechtigung für den angegebenen Prinzipal und für alle anderen Prinzipale verweigert wird, denen diese Berechtigung von diesem Prinzipal erteilt wurde. Dies ist erforderlich, wenn der Prinzipal die GRANT OPTION-Berechtigung besitzt.

TO <Dienstprinzipal>
Gibt den Prinzipal an, für den die Berechtigung verweigert wird.

AS <gewährender_Prinzipal>
Gibt den Prinzipal an, von dem der Prinzipal, der diese Abfrage ausführt, sein Recht zum Verweigern der Berechtigung ableitet. Verwenden Sie die AS-Prinzipalklausel, um anzugeben, dass der Prinzipal, der die Berechtigung verweigert hat, ein anderer Prinzipal als die Person sein muss, die die Anweisung ausführt. Nehmen Sie beispielsweise an, dass die Benutzerin Mary der principal_id 12 und der Benutzer Raul der principal_id 15 entspricht. Mary führt DENY SELECT ON OBJECT::X TO Steven WITH GRANT OPTION AS Raul; Jetzt zeigt die sys.database_permissions Tabelle an, dass die grantor_principal_id der Ablehnungsanweisung 15 (Raul) war, obwohl die Anweisung tatsächlich von Benutzer 13 (Mary) ausgeführt wurde.

In dieser Anweisung impliziert die Verwendung von AS nicht die Fähigkeit, die Identität eines anderen Benutzers anzunehmen.

SQL_Server_login
Gibt einen SQL Server-Anmeldenamen an.

SQL_Server_login_mapped_to_Windows_login
Gibt einen SQL Server-Anmeldenamen an, der einem Windows-Anmeldenamen zugeordnet ist.

SQL_Server_login_mapped_to_Windows_group
Gibt einen SQL Server-Anmeldenamen an, der einer Windows-Gruppe zugeordnet ist.

SQL_Server_login_mapped_to_certificate
Gibt einen SQL Server-Anmeldenamen an, der einem Zertifikat zugeordnet ist.

SQL_Server_login_mapped_to_asymmetric_key
Gibt einen SQL Server-Anmeldenamen an, der einem asymmetrischen Schlüssel zugeordnet ist.

server_role
Gibt eine Serverrolle an.

Bemerkungen

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

Informationen zu Serverberechtigungen werden in der sys.server_permissions-Katalogsicht und Informationen zu Serverprinzipalen in der sys.server_principals-Katalogsicht angezeigt. Informationen zur Mitgliedschaft von Serverrollen werden in der sys.server_role_members-Katalogsicht angezeigt.

Ein Server stellt die höchste Ebene der Berechtigungshierarchie dar. Die spezifischsten und restriktivsten Berechtigungen, die für einen Server verweigert werden können, sind in der folgenden Tabelle aufgeführt.

Serverberechtigung Impliziert durch die Serverberechtigung
VERWALTEN VON MASSENVORGÄNGEN Steuerungsserver
ÄNDERUNG JEDER VERFÜGBARKEITSGRUPPE

Gilt für: SQL Server (SQL Server 2012 (11.x) bis aktuelle Version).
Steuerungsserver
ÄNDERN EINER BELIEBIGEN VERBINDUNG Steuerungsserver
ÄNDERN EINER BELIEBIGEN ANMELDEINFORMATION Steuerungsserver
ÄNDERN EINER BELIEBIGEN DATENBANK Steuerungsserver
ÄNDERN EINES BELIEBIGEN ENDPUNKTS Steuerungsserver
JEDES EREIGNISBENACHRICHTIGUNG ÄNDERN Steuerungsserver
ÄNDERN EINER EREIGNISSITZUNG Steuerungsserver
ÄNDERN EINES BELIEBIGEN VERKNÜPFTEN SERVERS Steuerungsserver
ÄNDERN ALLER ANMELDUNGEN Steuerungsserver
ÄNDERN EINER SERVERÜBERWACHUNG Steuerungsserver
ÄNDERN EINER BELIEBIGEN SERVERROLLE

Gilt für: SQL Server (SQL Server 2012 (11.x) bis aktuelle Version).
Steuerungsserver
ALTER-RESSOURCEN Steuerungsserver
SERVERSTATUS ÄNDERN Steuerungsserver
EINSTELLUNGEN ÄNDERN Steuerungsserver
ALTER TRACE Steuerungsserver
AUTHENTIFIZIEREN DES SERVERS Steuerungsserver
VERBINDEN EINER BELIEBIGEN DATENBANK

Gilt für: SQL Server (SQL Server 2014 (12.x) bis aktuelle Version).
Steuerungsserver
CONNECT SQL Steuerungsserver
Steuerungsserver Steuerungsserver
BELIEBIGE DATENBANK ERSTELLEN ÄNDERN EINER BELIEBIGEN DATENBANK
ERSTELLEN SIE EINE VERFÜGBARKEITSGRUPPE

Gilt für: SQL Server (SQL Server 2012 (11.x) bis aktuelle Version).
ÄNDERUNG JEDER VERFÜGBARKEITSGRUPPE
Ddl-Ereignisbenachrichtigung erstellen JEDES EREIGNISBENACHRICHTIGUNG ÄNDERN
ENDPUNKT ERSTELLEN ÄNDERN EINES BELIEBIGEN ENDPUNKTS
SERVERROLLE ERSTELLEN

Gilt für: SQL Server (SQL Server 2012 (11.x) bis aktuelle Version).
ÄNDERN EINER BELIEBIGEN SERVERROLLE
ERSTELLEN SIE EINE BENACHRICHTIGUNG FÜR VERFOLGUNGSVORGÄNGE JEDES EREIGNISBENACHRICHTIGUNG ÄNDERN
ASSEMBLY FÜR EXTERNEN ZUGRIFF Steuerungsserver
IDENTITÄTSWECHSEL JEDER ANMELDUNG

Gilt für: SQL Server (SQL Server 2014 (12.x) bis aktuelle Version).
Steuerungsserver
ALLE SICHERUNGSFÄHIGEN BENUTZER AUSWÄHLEN

Gilt für: SQL Server (SQL Server 2014 (12.x) bis aktuelle Version).
Steuerungsserver
SHUTDOWN Steuerungsserver
UNSICHERE MONTAGE Steuerungsserver
Jede Datenbank anzeigen Jede Definition ansehen
Jede Definition ansehen Steuerungsserver
SERVERSTATUS ANZEIGEN SERVERSTATUS ÄNDERN

Die folgenden drei Serverberechtigungen wurden in SQL Server 2014 (12.x) hinzugefügt.

CONNECT ANY DATABASE-Berechtigung
Erteilen Sie die CONNECT ANY DATABASE-Berechtigung einem Anmeldenamen, der eine Verbindung mit allen derzeit vorhandenen Datenbanken und allen zukünftig erstellten neuen Datenbanken herstellen muss. Gewährt keine Berechtigung für Datenbanken außer der Berechtigung zum Herstellen der Verbindung. Kombinieren Sie diese Berechtigung mit SELECT ALL USER SECURABLES oder VIEW SERVER STATE, um einem Überwachungsprozess das Anzeigen aller Daten oder aller Datenbankstatus in der Instanz von SQL Server zu ermöglichen.

IMPERSONATE ANY LOGIN-Berechtigung
Wenn die Berechtigung erteilt wird, kann ein Prozess der mittleren Ebene beim Herstellen der Verbindung mit Datenbanken die Identität des Kontos von Clients annehmen, die eine Verbindung mit ihm herstellen. Wenn die Berechtigung verweigert wird, kann verhindert werden, dass ein Anmeldename mit hohen Privilegien die Identität anderer Anmeldenamen annimmt. Beispielsweise kann verhindert werden, dass ein Anmeldename mit einer CONTROL SERVER-Berechtigung die Identität anderer Anmeldenamen annimmt.

SELECT ALL USER SECURABLES-Berechtigung
Wenn sie erteilt wird, kann ein Anmeldename, z. B. ein Auditor, Daten in allen Datenbanken anzeigen, mit denen der Benutzer eine Verbindung herstellen kann. Wenn sie verweigert wird, wird der Zugriff auf alle Objekte, außer auf die Objekte im sys-Schema, verhindert.

Berechtigungen

Erfordert die CONTROL SERVER-Berechtigung oder den Besitz des sicherungsfähigen Elements. Falls die AS-Klausel verwendet wird, muss der angegebene Prinzipal der Besitzer des sicherungsfähigen Elements sein, für das Berechtigungen verweigert werden.

Beispiele

A. Verweigern der CONNECT SQL-Berechtigung für einen SQL Server-Anmeldenamen und für Prinzipale, denen der Anmeldename diese Berechtigung erteilt hat

Im folgenden Beispiel wird die CONNECT SQL-Berechtigung für den SQL Server-Anmeldenamen Annika und für die Prinzipale verweigert, denen diese Benutzerin die Berechtigung erteilt hat.

USE master;  
DENY CONNECT SQL TO Annika CASCADE;  
GO  

B. Verweigern der CREATE ENDPOINT-Berechtigung für einen SQL Server-Anmeldenamen mit der AS-Option

Im folgenden Beispiel wird die CREATE ENDPOINT-Berechtigung für den Benutzer ArifS verweigert. Im Beispiel wird die AS-Option verwendet, um MandarP als Prinzipal anzugeben, von dem der ausführende Prinzipal die Berechtigung zum Erteilen oder Verweigern der Berechtigung ableitet.

USE master;  
DENY CREATE ENDPOINT TO ArifS AS MandarP;  
GO  

Weitere Informationen

ZUSCHUSS (Transact-SQL)
VERWEIGERN (Transact-SQL)
DENY (Serverberechtigungen) (Transact-SQL)
REVOKE (Serverberechtigungen) (Transact-SQL)
Berechtigungshierarchie (Datenbank-Engine)
sys.fn_builtin_permissions (Transact-SQL)
sys.fn_my_permissions (Transact-SQL)
HAS_PERMS_BY_NAME (Transact-SQL)