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

Verweigert die für einen Datenbankbenutzer, eine Datenbankrolle oder Anwendungsrolle erteilten Berechtigungen.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

DENY permission [ ,...n ]  
    ON 
    {  [ USER :: database_user ]
       | [ ROLE :: database_role ]
       | [ APPLICATION ROLE :: application_role ]
    }
    TO <database_principal> [ ,...n ]
    [ CASCADE ]
        [ AS <database_principal> ]

<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 

Argumente

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

  • USER :: database_user
    Gibt die Klasse und den Namen des Benutzers an, für den die Berechtigung verweigert wird. Der Bereichsqualifizierer (::) ist erforderlich.

  • ROLE :: database_role
    Gibt die Klasse und den Namen der Rolle an, für die die Berechtigung verweigert wird. Der Bereichsqualifizierer (::) ist erforderlich.

  • APPLICATION ROLE :: application_role
    Gibt die Klasse und den Namen der Anwendungsrolle an, für die die Berechtigung verweigert wird. Der Bereichsqualifizierer (::) ist erforderlich.

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

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

  • Database_user
    Gibt einen Datenbankbenutzer an.

  • Database_role
    Gibt eine Datenbankrolle an.

  • Application_role
    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.

Hinweise

Berechtigungen für Datenbankbenutzer

Ein Datenbankbenutzer ist ein sicherungsfähiges Element auf Datenbankebene in der Datenbank, die das übergeordnete Element in der Berechtigungshierarchie ist. Die spezifischsten und restriktivsten Berechtigungen, die für einen Datenbankbenutzer verweigert werden können, sind unten aufgeführt. Auch die allgemeineren Berechtigungen sind aufgeführt, die diese implizit enthalten.

Berechtigung für Datenbankbenutzer

Impliziert durch die Berechtigung für Datenbankbenutzer

Impliziert durch die Datenbankberechtigung

CONTROL

CONTROL

CONTROL

IMPERSONATE

CONTROL

CONTROL

ALTER

CONTROL

ALTER ANY USER

VIEW DEFINITION

CONTROL

VIEW DEFINITION

Berechtigungen für Datenbankrollen

Eine Datenbankrolle ist ein sicherungsfähiges Element auf Datenbankebene in der Datenbank, die das übergeordnete Element in der Berechtigungshierarchie ist. Die spezifischsten und restriktivsten Berechtigungen, die für eine Datenbankrolle verweigert werden können, sind unten aufgeführt. Auch die allgemeineren Berechtigungen sind aufgeführt, die diese implizit enthalten.

Berechtigung für Datenbankrollen

Impliziert durch die Berechtigung für Datenbankrollen

Impliziert durch die Datenbankberechtigung

CONTROL

CONTROL

CONTROL

TAKE OWNERSHIP

CONTROL

CONTROL

ALTER

CONTROL

ALTER ANY ROLE

VIEW DEFINITION

CONTROL

VIEW DEFINITION

Berechtigungen für Anwendungsrollen

Eine Anwendungsrolle ist ein sicherungsfähiges Element auf Datenbankebene in der Datenbank, die das übergeordnete Element in der Berechtigungshierarchie ist. Die spezifischsten und restriktivsten Berechtigungen, die für eine Anwendungsrolle verweigert werden können, sind unten aufgeführt. Auch die allgemeineren Berechtigungen sind aufgeführt, die diese implizit enthalten.

Berechtigung für Anwendungsrollen

Impliziert durch die Berechtigung für Anwendungsrollen

Impliziert durch die Datenbankberechtigung

CONTROL

CONTROL

CONTROL

ALTER

CONTROL

ALTER ANY APPLICATION ROLE

VIEW DEFINITION

CONTROL

VIEW DEFINITION

Berechtigungen

Erfordert die CONTROL-Berechtigung für den angegebenen Prinzipal oder eine höhere Berechtigung, die die CONTROL-Berechtigung impliziert.

Empfänger der CONTROL-Berechtigung in einer Datenbank, z. B. Mitglieder der festen Datenbankrolle db_owner, können jede Berechtigung für ein beliebiges sicherungsfähiges Element in der Datenbank verweigern.

Beispiele

A. Verweigern der CONTROL-Berechtigung für einen Benutzer für einen anderen Benutzer

Im folgenden Beispiel wird die CONTROL-Berechtigung für den AdventureWorks2008R2-Benutzer Wanida dem Benutzer RolandX verweigert.

USE AdventureWorks2008R2;
DENY CONTROL ON USER::Wanida TO RolandX;
GO

B. Verweigern der VIEW DEFINITION-Berechtigung für eine Rolle für einen Benutzer, dem diese Berechtigung mit GRANT OPTION erteilt wurde

Im folgenden Beispiel wird die VIEW DEFINITION-Berechtigung für die AdventureWorks2008R2-Rolle SammamishParking dem Datenbankbenutzer JinghaoLiu verweigert. Die CASCADE-Option ist angegeben, da dem Benutzer JinghaoLiu die VIEW DEFINITION-Berechtigung mit GRANT OPTION erteilt wurde.

USE AdventureWorks2008R2;
DENY VIEW DEFINITION ON ROLE::SammamishParking 
    TO JinghaoLiu CASCADE;
GO

C. Verweigern der IMPERSONATE-Berechtigung für einen Benutzer für eine Anwendungsrolle

Im folgenden Beispiel wird die IMPERSONATE-Berechtigung für den Benutzer HamithaL der AdventureWorks2008R2-Anwendungsrolle AccountsPayable17 verweigert.

USE AdventureWorks2008R2;
DENY IMPERSONATE ON USER::HamithaL TO AccountsPayable17;
GO