DENY Datenbankberechtigungen (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankVerwaltete Azure SQL-InstanzAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-Analyseendpunkt in Microsoft FabricLagerhaus in Microsoft FabricSQL-Datenbank in Microsoft Fabric

Lehnt Berechtigungen für eine Datenbank in SQL Server ab.

Transact-SQL-Syntaxkonventionen

Syntax

DENY <permission> [ ,...n ]
    TO <database_principal> [ ,...n ] [ CASCADE ]
    [ AS <database_principal> ]

<permission> ::=
    permission | ALL [ PRIVILEGES ]

<database_principal> ::=
    Database_user
  | Database_role
  | Application_role
  | Database_user_mapped_to_Windows_User
  | Database_user_mapped_to_Windows_Group
  | Database_user_mapped_to_certificate
  | Database_user_mapped_to_asymmetric_key
  | Database_user_with_no_login

Arguments

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

ALL Mit dieser Option werden nicht alle möglichen Berechtigungen verweigert. ALLE zu verweigern entspricht der Verweigerung der folgenden Berechtigungen: BACKUP, LOG, CREATE DATABASE, , CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLEund CREATE VIEW. BACKUPDATABASE

PRIVILEGES Aus Gründen der Kompatibilität mit ISO eingeschlossen. Ändert das Verhalten von ALL nicht.

CASCADE Gibt an, dass die Berechtigung auch für andere Prinzipale verweigert wird, denen der angegebene Prinzipal diese Berechtigung erteilt hat.

AS <database_principal> Gibt einen Prinzipal an, von dem der Prinzipal, der diese Abfrage ausführt, sein Recht zum Verweigern der Berechtigung ableitet.

Database_user Gibt einen Datenbankbenutzer an.

Database_role Gibt eine Datenbankrolle an.

Application_roleGilt für: SQL Server 2008 (10.0.x) und höher sowie SQL-Datenbank

Gibt eine Anwendungsrolle an.

Database_user_mapped_to_Windows_User Gibt einen Datenbankbenutzer an, der einem Windows-Benutzer zugeordnet ist.

Database_user_mapped_to_Windows_Group Gibt einen Datenbankbenutzer an, der einer Windows-Gruppe zugeordnet ist.

Database_user_mapped_to_certificate Gibt einen Datenbankbenutzer an, der einem Zertifikat zugeordnet ist.

Database_user_mapped_to_asymmetric_key Gibt einen Datenbankbenutzer an, der einem asymmetrischen Schlüssel zugeordnet ist.

Database_user_with_no_login Gibt einen Datenbankbenutzer ohne entsprechenden Prinzipal auf Serverebene an.

Remarks

Eine Datenbank ist ein sicherungsfähiges Element auf dem Server, der das übergeordnete Element in der Berechtigungshierarchie ist. Die spezifischsten und restriktivsten Berechtigungen, die für eine Datenbank verweigert werden können, sind in der folgenden Tabelle aufgeführt. Außerdem enthält die Tabelle die allgemeineren Berechtigungen, die implizit enthalten sind.

Datenbankberechtigung Impliziert durch Datenbankberechtigung Impliziert durch die Serverberechtigung
VERWALTEN VON DATABASE MASSENVORGÄNGEN
Gilt für: SQL-Datenbank
CONTROL Steuerungsserver
ALTER CONTROL JEDES ÄNDERN DATABASE
JEDES ÄNDERN APPLICATION ROLE ALTER Steuerungsserver
JEDES ÄNDERN ASSEMBLY ALTER Steuerungsserver
JEDES ÄNDERN ASYMMETRIC KEY ALTER Steuerungsserver
JEDES ÄNDERN CERTIFICATE ALTER Steuerungsserver
JEDES ÄNDERN COLUMN ENCRYPTION KEY ALTER Steuerungsserver
ÄNDERN SIE JEDE COLUMN MASTER KEY DEFINITION ALTER Steuerungsserver
JEDES ÄNDERN CONTRACT ALTER Steuerungsserver
ÄNDERN EINER BELIEBIGEN DATABASE ÜBERWACHUNG ALTER JEDES ÄNDERN SERVER AUDIT
ÄNDERN SIE JEDEN DATABASE DDL TRIGGER ALTER Steuerungsserver
ÄNDERN BELIEBIGEN DATABASEEVENT NOTIFICATION ALTER JEDES ÄNDERN EVENT NOTIFICATION
ÄNDERN BELIEBIGEN DATABASEEVENT SESSION
Gilt für: Azure SQL-Datenbank.
ALTER JEDES ÄNDERN EVENT SESSION
JEDES ÄNDERN DATABASE SCOPED CONFIGURATION
Gilt für: SQL Server 2016 (13.x) und höher, SQL-Datenbank.
CONTROL Steuerungsserver
ÄNDERN EINES BELIEBIGEN DATENBEREICHS ALTER Steuerungsserver
JEDES ÄNDERN EXTERNAL DATA SOURCE ALTER Steuerungsserver
JEDES ÄNDERN EXTERNAL FILE FORMAT ALTER Steuerungsserver
JEDES ÄNDERN EXTERNAL LIBRARY
Gilt für: SQL Server 2017 (14.x).
CONTROL Steuerungsserver
JEDES ÄNDERN FULLTEXT CATALOG ALTER Steuerungsserver
BELIEBIGE MASKE ÄNDERN CONTROL Steuerungsserver
JEDES ÄNDERN MESSAGE TYPE ALTER Steuerungsserver
JEDES ÄNDERN REMOTE SERVICE BINDING ALTER Steuerungsserver
JEDES ÄNDERN ROLE ALTER Steuerungsserver
JEDES ÄNDERN ROUTE ALTER Steuerungsserver
JEDES ÄNDERN SECURITY POLICY
Gilt für: SQL Server 2016 (13.x) und höher, Azure SQL-Datenbank.
CONTROL Steuerungsserver
JEDES ÄNDERN SCHEMA ALTER Steuerungsserver
JEDES ÄNDERN SERVICE ALTER Steuerungsserver
JEDES ÄNDERN SYMMETRIC KEY ALTER Steuerungsserver
JEDES ÄNDERN USER ALTER Steuerungsserver
AUTHENTICATE CONTROL AUTHENTIFIZIEREN DES SERVERS
BACKUP DATABASE CONTROL Steuerungsserver
BACKUP PROTOKOLL CONTROL Steuerungsserver
CHECKPOINT CONTROL Steuerungsserver
CONNECT VERBINDUNGSREPLIKATION Steuerungsserver
VERBINDUNGSREPLIKATION CONTROL Steuerungsserver
CONTROL CONTROL Steuerungsserver
CREATE AGGREGATE ALTER Steuerungsserver
CREATE ASSEMBLY JEDES ÄNDERN ASSEMBLY Steuerungsserver
CREATE ASYMMETRIC KEY JEDES ÄNDERN ASYMMETRIC KEY Steuerungsserver
CREATE CERTIFICATE JEDES ÄNDERN CERTIFICATE Steuerungsserver
CREATE CONTRACT JEDES ÄNDERN CONTRACT Steuerungsserver
CREATE DATABASE CONTROL BELIEBIG ERSTELLEN DATABASE
CREATE DATABASE DDL EVENT NOTIFICATION ÄNDERN BELIEBIGEN DATABASEEVENT NOTIFICATION CREATE DDL EVENT NOTIFICATION
CREATE DEFAULT ALTER Steuerungsserver
CREATE FULLTEXT CATALOG JEDES ÄNDERN FULLTEXT CATALOG Steuerungsserver
CREATE FUNCTION ALTER Steuerungsserver
CREATE MESSAGE TYPE JEDES ÄNDERN MESSAGE TYPE Steuerungsserver
CREATE PROCEDURE ALTER Steuerungsserver
CREATE QUEUE ALTER Steuerungsserver
CREATE REMOTE SERVICE BINDING JEDES ÄNDERN REMOTE SERVICE BINDING Steuerungsserver
CREATE ROLE JEDES ÄNDERN ROLE Steuerungsserver
CREATE ROUTE JEDES ÄNDERN ROUTE Steuerungsserver
CREATE RULE ALTER Steuerungsserver
CREATE SCHEMA JEDES ÄNDERN SCHEMA Steuerungsserver
CREATE SERVICE JEDES ÄNDERN SERVICE Steuerungsserver
CREATE SYMMETRIC KEY JEDES ÄNDERN SYMMETRIC KEY Steuerungsserver
CREATE SYNONYM ALTER Steuerungsserver
CREATE TABLE ALTER Steuerungsserver
CREATE TYPE ALTER Steuerungsserver
CREATE VIEW ALTER Steuerungsserver
CREATE XML SCHEMA COLLECTION ALTER Steuerungsserver
DELETE CONTROL Steuerungsserver
EXECUTE CONTROL Steuerungsserver
AUSFÜHREN EINES BELIEBIGEN EXTERNEN SKRIPTS
Gilt für: SQL Server 2016 (13.x).
CONTROL Steuerungsserver
INSERT CONTROL Steuerungsserver
KILL-VERBINDUNG DATABASE
Gilt für: Azure SQL-Datenbank.
CONTROL ÄNDERN EINER BELIEBIGEN VERBINDUNG
REFERENCES CONTROL Steuerungsserver
SELECT CONTROL Steuerungsserver
SHOWPLAN CONTROL ALTER TRACE
ABONNIEREN VON ABFRAGEBENACHRICHTIGUNGEN CONTROL Steuerungsserver
ÜBERNEHMEN EIGENTUM CONTROL Steuerungsserver
UNMASK CONTROL Steuerungsserver
UPDATE CONTROL Steuerungsserver
VIEW JEGLICHE COLUMN ENCRYPTION KEY CONTROL VIEW JEDE DEFINITION
VIEWJEDE DEFINITION MASTER KEY CONTROL VIEW JEDE DEFINITION
VIEW DATABASE STAAT CONTROL VIEW SERVERSTATUS
VIEW DEFINITION CONTROL VIEW JEDE DEFINITION

Permissions

Der Prinzipal, der diese Anweisung ausführt (oder der mit der AS-Option angegebene Prinzipal) muss die CONTROL-Berechtigung für die Datenbank oder eine höhere Berechtigung besitzen, die die CONTROL-Berechtigung für die Datenbank impliziert.

Falls die AS-Option verwendet wird, muss der angegebene Prinzipal die Datenbank besitzen.

Examples

A. Verweigern der Berechtigung zum Erstellen von Zertifikaten

Im folgenden Beispiel wird die CREATE CERTIFICATE-Berechtigung für die AdventureWorks2025-Datenbank für den Benutzer MelanieK verweigert.

USE AdventureWorks2022;
DENY CREATE CERTIFICATE TO MelanieK;
GO

B. Verweigern der REFERENCES-Berechtigung für eine Anwendungsrolle

Im folgenden Beispiel wird die REFERENCES-Berechtigung für die AdventureWorks2025-Datenbank für die Anwendungsrolle AuditMonitor verweigert.

Gilt für: SQL Server 2008 (10.0.x) und höher sowie SQL-Datenbank

USE AdventureWorks2022;
DENY REFERENCES TO AuditMonitor;
GO

C. DEFINITION mit CASCADE verweigern VIEW

Im folgenden Beispiel wird die Berechtigung VIEW DEFINITION für die Datenbank AdventureWorks2025 für Benutzer CarmineEs und für alle Prinzipale verweigert, denen von CarmineEs die Berechtigung VIEW DEFINITION erteilt wurde.

USE AdventureWorks2022;
DENY VIEW DEFINITION TO CarmineEs CASCADE;
GO

Siehe auch