Freigeben über


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. Das Verweigern mit der ALL-Option ist gleichbedeutend mit dem Verweigern der folgenden Berechtigungen: BACKUP DATABASE, BACKUP LOG, CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE und CREATE VIEW.

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 BULK-OPERATIONEN IN DER DATENBANK
Gilt für: SQL-Datenbank
CONTROL Steuerungsserver
ALTER CONTROL ÄNDERN EINER BELIEBIGEN DATENBANK
ÄNDERN EINER BELIEBIGEN ANWENDUNGSROLLE ALTER Steuerungsserver
BELIEBIGE ASSEMBLY ÄNDERN ALTER Steuerungsserver
ÄNDERN EINES ASYMMETRISCHEN SCHLÜSSELS ALTER Steuerungsserver
ÄNDERN EINES BELIEBIGEN ZERTIFIKATS ALTER Steuerungsserver
ÄNDERN EINES BELIEBIGEN SPALTENVERSCHLÜSSELUNGSSCHLÜSSELS ALTER Steuerungsserver
ÄNDERN EINER BELIEBIGEN SPALTENMASTERSCHLÜSSELDEFINITION ALTER Steuerungsserver
ÄNDERN EINES VERTRAGS ALTER Steuerungsserver
ÄNDERN EINER DATENBANKÜBERWACHUNG ALTER ÄNDERN EINER SERVERÜBERWACHUNG
ÄNDERN EINES DATENBANK-DDL-TRIGGERS ALTER Steuerungsserver
Benachrichtigungen zu Datenbankereignissen ändern ALTER JEDES EREIGNISBENACHRICHTIGUNG ÄNDERN
ÄNDERN EINER DATENBANK-EREIGNISSESSION
Gilt für: Azure SQL-Datenbank.
ALTER ÄNDERN EINER EREIGNISSITZUNG
ÄNDERN EINER DATENBANKBEREICHSKONFIGURATION
Gilt für: SQL Server 2016 (13.x) und höher, SQL-Datenbank.
CONTROL Steuerungsserver
ÄNDERN EINES BELIEBIGEN DATENBEREICHS ALTER Steuerungsserver
ÄNDERE JEDE EXTERNE DATENQUELLE ALTER Steuerungsserver
ÄNDERN EINES BELIEBIGEN EXTERNEN DATEIFORMATS ALTER Steuerungsserver
ÄNDERN EINER BELIEBIGEN EXTERNEN BIBLIOTHEK
Gilt für: SQL Server 2017 (14.x).
CONTROL Steuerungsserver
ÄNDERN EINES VOLLSTÄNDIGEN TEXTKATALOGS ALTER Steuerungsserver
BELIEBIGE MASKE ÄNDERN CONTROL Steuerungsserver
ÄNDERN EINES BELIEBIGEN NACHRICHTENTYPS ALTER Steuerungsserver
ÄNDERN JEDER REMOTE-DIENST-BINDUNG ALTER Steuerungsserver
ÄNDERN EINER BELIEBIGEN ROLLE ALTER Steuerungsserver
ÄNDERN EINER BELIEBIGEN ROUTE ALTER Steuerungsserver
ÄNDERN EINER SICHERHEITSRICHTLINIE
Gilt für: SQL Server 2016 (13.x) und höher, Azure SQL-Datenbank.
CONTROL Steuerungsserver
ÄNDERN EINES BELIEBIGEN SCHEMAS ALTER Steuerungsserver
ÄNDERE JEDEN DIENST ALTER Steuerungsserver
ÄNDERN EINES SYMMETRISCHEN SCHLÜSSELS ALTER Steuerungsserver
ÄNDERN EINES BELIEBIGEN BENUTZERS ALTER Steuerungsserver
AUTHENTICATE CONTROL AUTHENTIFIZIEREN DES SERVERS
SICHERUNGSDATENBANK CONTROL Steuerungsserver
SICHERUNGSPROTOKOLL CONTROL Steuerungsserver
CHECKPOINT CONTROL Steuerungsserver
CONNECT VERBINDUNGSREPLIKATION Steuerungsserver
VERBINDUNGSREPLIKATION CONTROL Steuerungsserver
CONTROL CONTROL Steuerungsserver
AGGREGAT ERSTELLEN ALTER Steuerungsserver
CREATE ASSEMBLY (Erstellen einer Assembly) BELIEBIGE ASSEMBLY ÄNDERN Steuerungsserver
ERSTELLEN EINES ASYMMETRISCHEN SCHLÜSSELS ÄNDERN EINES ASYMMETRISCHEN SCHLÜSSELS Steuerungsserver
ZERTIFIKAT ERSTELLEN ÄNDERN EINES BELIEBIGEN ZERTIFIKATS Steuerungsserver
VERTRAG ERSTELLEN ÄNDERN EINES VERTRAGS Steuerungsserver
DATENBANK ERSTELLEN CONTROL BELIEBIGE DATENBANK ERSTELLEN
CREATE-DATABASE-DDL-Ereignisbenachrichtigung Benachrichtigungen zu Datenbankereignissen ändern Ddl-Ereignisbenachrichtigung erstellen
STANDARD ERSTELLEN ALTER Steuerungsserver
FULLTEXT-KATALOG ERSTELLEN ÄNDERN EINES VOLLSTÄNDIGEN TEXTKATALOGS Steuerungsserver
CREATE-FUNKTION ALTER Steuerungsserver
NACHRICHTENTYP ERSTELLEN ÄNDERN EINES BELIEBIGEN NACHRICHTENTYPS Steuerungsserver
PROZEDUR ERSTELLEN ALTER Steuerungsserver
WARTESCHLANGE ERSTELLEN ALTER Steuerungsserver
ERSTELLEN EINER REMOTE-DIENSTBINDUNG ÄNDERN JEDER REMOTE-DIENST-BINDUNG Steuerungsserver
ROLLE ERSTELLEN ÄNDERN EINER BELIEBIGEN ROLLE Steuerungsserver
ROUTE ERSTELLEN ÄNDERN EINER BELIEBIGEN ROUTE Steuerungsserver
REGEL ERSTELLEN ALTER Steuerungsserver
SCHEMA ERSTELLEN ÄNDERN EINES BELIEBIGEN SCHEMAS Steuerungsserver
DIENST ERSTELLEN ÄNDERE JEDEN DIENST Steuerungsserver
SYMMETRISCHER SCHLÜSSEL ERSTELLEN ÄNDERN EINES SYMMETRISCHEN SCHLÜSSELS Steuerungsserver
SYNONYM ERSTELLEN ALTER Steuerungsserver
CREATE TABLE ALTER Steuerungsserver
TYPE ERSTELLEN ALTER Steuerungsserver
ANSICHT ERSTELLEN ALTER Steuerungsserver
ERSTELLEN EINER XML-SCHEMAAUFLISTUNG 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
Verbindung zur Datenbank beenden
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
ANZEIGEN EINES BELIEBIGEN SPALTENVERSCHLÜSSELUNGSSCHLÜSSELS CONTROL Jede Definition ansehen
ANZEIGEN EINER BELIEBIGEN MASTERSCHLÜSSELDEFINITION CONTROL Jede Definition ansehen
DATENBANKSTATUS ANZEIGEN CONTROL SERVERSTATUS ANZEIGEN
Darstellungsdefinition CONTROL Jede Definition ansehen

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. Verweigern von VIEW DEFINITION mit CASCADE

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