DENY Serverberechtigungen (Transact-SQL)

Gilt für:SQL ServerAzure 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

Erlaubnis

Gibt eine Berechtigung an, die für einen Server verweigert werden kann. Eine Liste der Berechtigungen finden Sie in den Hinweisen.

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. Erforderlich, wenn der Schulleiter die Erlaubnis mit GRANT OPTIONhat.

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 Hauptklausel, um anzugeben, dass der als Leugner der Erlaubnis eingetragene Hauptprinzipal ein anderer Auftraggeber sein sollte als die Person, die die Aussage ausführt. Zum Beispiel nehmen wir an, dass Nutzer Mary 12 ist principal_id und Nutzer Raul Schulleiter 15. Mary führt DENY SELECT ON OBJECT::X TO Steven WITH GRANT OPTION AS Raul; aus. Nun zeigt die sys.database_permissions Tabelle an, dass die grantor_principal_id der Ablehnungsaussage 15 (Raul) war, obwohl die Aussage tatsächlich von Nutzer 13 (Mary) ausgeführt wurde.

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 die aktuelle Datenbank .master

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.

In der Azure SQL-Datenbank GRANTwerden , REVOKE, und DENY auf Serverebene keine Berechtigungen unterstützt.

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
ADMINISTER BULK OPERATIONS CONTROL SERVER
ALTER ANY AVAILABILITY GROUP

Gilt für: SQL Server (SQL Server 2012 (11.x) bis aktuelle Version).
CONTROL SERVER
ALTER ANY CONNECTION CONTROL SERVER
ALTER ANY CREDENTIAL CONTROL SERVER
ALTER ANY DATABASE CONTROL SERVER
ALTER ANY ENDPOINT CONTROL SERVER
ALTER ANY EVENT NOTIFICATION CONTROL SERVER
ALTER ANY EVENT SESSION CONTROL SERVER
ALTER ANY LINKED SERVER CONTROL SERVER
ALTER ANY LOGIN CONTROL SERVER
ALTER ANY SERVER AUDIT CONTROL SERVER
ALTER ANY SERVER ROLE

Gilt für: SQL Server (SQL Server 2012 (11.x) bis aktuelle Version).
CONTROL SERVER
ALTER RESOURCES CONTROL SERVER
ALTER SERVER STATE CONTROL SERVER
ALTER SETTINGS CONTROL SERVER
ALTER TRACE CONTROL SERVER
AUTHENTICATE SERVER CONTROL SERVER
VERBINDEN ALLER VERBINDUNGEN DATABASE

Gilt für: SQL Server (SQL Server 2014 (12.x) bis aktuelle Version).
CONTROL SERVER
CONNECT SQL CONTROL SERVER
CONTROL SERVER CONTROL SERVER
CREATE ANY DATABASE ALTER ANY DATABASE
CREATE AVAILABILITY GROUP

Gilt für: SQL Server (SQL Server 2012 (11.x) bis aktuelle Version).
JEDES ÄNDERN AVAILABILITY GROUP
CREATE DDL EVENT NOTIFICATION ALTER ANY EVENT NOTIFICATION
CREATE ENDPOINT ALTER ANY ENDPOINT
CREATE SERVER ROLE

Gilt für: SQL Server (SQL Server 2012 (11.x) bis aktuelle Version).
ALTER ANY SERVER ROLE
CREATE TRACE EVENT NOTIFICATION ALTER ANY EVENT NOTIFICATION
EXTERNAL ACCESS ASSEMBLY CONTROL SERVER
IMPERSONATE ANY LOGIN

Gilt für: SQL Server (SQL Server 2014 (12.x) bis aktuelle Version).
CONTROL SERVER
SELECT ALL USER SECURABLES

Gilt für: SQL Server (SQL Server 2014 (12.x) bis aktuelle Version).
CONTROL SERVER
SHUTDOWN CONTROL SERVER
UNSAFE ASSEMBLY CONTROL SERVER
VIEW ANY DATABASE VIEW ANY DEFINITION
VIEW ANY DEFINITION CONTROL SERVER
VIEW ANY PERFORMANCE DEFINITION

Gilt für: SQL Server 2022 (16.x) und höhere Versionen.
VIEW ANY DEFINITION
VIEW ANY SECURITY DEFINITION

Gilt für: SQL Server 2022 (16.x) und höhere Versionen.
VIEW ANY DEFINITION
VIEW SERVER PERFORMANCE STATE

Gilt für: SQL Server 2022 (16.x) und höhere Versionen.
VIEW SERVER STATE
VIEW SERVER SECURITY STATE

Gilt für: SQL Server 2022 (16.x) und höhere Versionen.
VIEW SERVER STATE
VIEW SERVER STATE ALTER SERVER STATE

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

  • CONNECT ANY DATABASE die Berechtigung erteilt

    • Gewähren CONNECT ANY DATABASE Sie einen Login, der sich mit allen derzeit vorhandenen Datenbanken und neuen Datenbanken, die in Zukunft erstellt werden könnten, verbunden sein muss. Gewährt keine Berechtigung für Datenbanken außer der Berechtigung zum Herstellen der Verbindung. Kombinieren Sie es mit SELECT ALL USER SECURABLES oder VIEW SERVER STATE ermöglichen Sie einem Audit-Prozess, alle Daten oder Datenbankzustände auf der SQL Server-Instanz anzuzeigen.
  • IMPERSONATE ANY LOGIN die Berechtigung erteilt

    • 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. Zum Beispiel kann ein Login mit CONTROL SERVER Berechtigung daran gehindert werden, andere Logins zu imitieren.
  • SELECT ALL USER SECURABLES die Berechtigung erteilt

    • 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 abgelehnt, verhindert dies den Zugriff auf Objekte, es sei denn, sie sind im Schema sys .

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. CONNECT SQL-Berechtigung für einen SQL Server-Login und die Hauptverantwortlichen verweigern, denen der Login sie erneut erteilt hat.

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

USE master;  
DENY CONNECT SQL TO Test CASCADE;  
GO  

B. Berechtigung für eine SQL Server-Anmeldung mit der AS-Option verweigern CREATE ENDPOINT

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

USE master;  
DENY CREATE ENDPOINT TO Test1 AS Test2;  
GO