Sdílet prostřednictvím


Odepřít oprávnění objektu zabezpečení databáze (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Odmítne oprávnění udělená pro uživatele databáze, roli databáze nebo aplikační roli v SQL Serveru.

Transact-SQL konvence syntaxe

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   

Arguments

permission
Určuje oprávnění, které lze u objektu zabezpečení databáze odepřít. Seznam oprávnění najdete v části Poznámky dále v tomto tématu.

UŽIVATEL ::database_user
Určuje třídu a název uživatele, u kterého je oprávnění odepřeno. Je vyžadován kvalifikátor oboru (::).

ROLE ::database_role
Určuje třídu a název role, pro kterou je oprávnění odepřeno. Je vyžadován kvalifikátor oboru (::).

APLIKAČNÍ ROLE ::application_role
Platí pro: SQL Server 2008 (10.0.x) a novější, SQL Database.

Určuje třídu a název role aplikace, pro kterou je oprávnění odepřeno. Je vyžadován kvalifikátor oboru (::).

CASCADE
Označuje, že odepření oprávnění je také odepřeno jiným objektům zabezpečení, kterým byl udělen tímto objektem zabezpečení.

DATABASE_PRINCIPAL AS <>
Určuje objekt zabezpečení, ze kterého objekt zabezpečení, který spouští tento dotaz, odvozuje své právo odvolat oprávnění.

Database_user
Určuje uživatele databáze.

Database_role
Určuje roli databáze.

Application_role
Platí pro: SQL Server 2008 (10.0.x) a novější, SQL Database.

Určuje roli aplikace.

Database_user_mapped_to_Windows_User
Určuje uživatele databáze mapované na uživatele systému Windows.

Database_user_mapped_to_Windows_Group
Určuje uživatele databáze mapované na skupinu Windows.

Database_user_mapped_to_certificate
Určuje uživatele databáze mapované na certifikát.

Database_user_mapped_to_asymmetric_key
Určuje uživatele databáze namapovaný na asymetrický klíč.

Database_user_with_no_login
Určuje uživatele databáze bez odpovídajícího objektu zabezpečení na úrovni serveru.

Remarks

Uživatelská oprávnění databáze

Uživatel databáze je zabezpečitelná databáze obsažená v databázi, která je jejím nadřazeným objektem v hierarchii oprávnění. Nejpřesnější a omezená oprávnění, která je možné uživateli databáze odepřít, jsou uvedena v následující tabulce společně s obecnějšími oprávněními, která je zahrnují implikací.

Oprávnění uživatele databáze Implicitní oprávnění uživatele databáze Implicitní oprávnění databáze
CONTROL CONTROL CONTROL
IMPERSONATE CONTROL CONTROL
ALTER CONTROL ZMĚNA LIBOVOLNÉHO UŽIVATELE
ZOBRAZIT DEFINICI CONTROL ZOBRAZIT DEFINICI

Oprávnění databázové role

Role databáze je zabezpečitelná databáze obsažená v databázi, která je nadřazená v hierarchii oprávnění. Nejpřesnější a omezená oprávnění, která je možné u databázové role odepřít, jsou uvedená v následující tabulce společně s obecnějšími oprávněními, která je zahrnují implikací.

Oprávnění k databázové roli Implicitní oprávnění databázové role Implicitní oprávnění databáze
CONTROL CONTROL CONTROL
PŘEVEZMĚTE ODPOVĚDNOST CONTROL CONTROL
ALTER CONTROL ZMĚNIT JAKOUKOLI ROLI
ZOBRAZIT DEFINICI CONTROL ZOBRAZIT DEFINICI

Oprávnění role aplikace

Role aplikace je zabezpečitelná databáze obsažená v databázi, která je jejím nadřazeným objektem v hierarchii oprávnění. Nejpřesnější a omezená oprávnění, která je možné u role aplikace odepřít, jsou uvedená v následující tabulce spolu s obecnějšími oprávněními, která je zahrnují implikací.

Oprávnění role aplikace Implicitní oprávnění role aplikace Implicitní oprávnění databáze
CONTROL CONTROL CONTROL
ALTER CONTROL ZMĚNIT JAKOUKOLI APLIKAČNÍ ROLI
ZOBRAZIT DEFINICI CONTROL ZOBRAZIT DEFINICI

Permissions

Vyžaduje oprávnění CONTROL u zadaného objektu zabezpečení nebo vyšší oprávnění, které znamená oprávnění CONTROL.

Udělení oprávnění CONTROL k databázi, jako jsou členové db_owner pevné databázové role, může odepřít jakékoli oprávnění k jakémukoli zabezpečitelnému v databázi.

Examples

A. Odepření oprávnění CONTROL uživateli jinému uživateli

Následující příklad odepírá CONTROL oprávnění uživateli Wanida AdventureWorks2025 uživateli RolandX.

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

B. Odepření oprávnění VIEW DEFINITION pro roli uživateli, kterému byla udělena pomocí MOŽNOSTI UDĚLENÍ

Následující příklad odepírá VIEW DEFINITION oprávnění k roli SammamishParking AdventureWorks2025 uživateli databáze JinghaoLiu. Tato CASCADE možnost je určena, protože uživateli JinghaoLiu bylo uděleno oprávnění DEFINICE ZOBRAZENÍ POMOCÍ MOŽNOSTI UDĚLENÍ.

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

C. Odepření oprávnění ZOSOBNIT pro uživatele k roli aplikace

Následující příklad odepírá IMPERSONATE uživateli HamithaL oprávnění k aplikační roli AccountsPayable17AdventureWorks2025.

Platí pro: SQL Server 2008 (10.0.x) a novější, SQL Database.

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

Viz také

oprávnění objektu zabezpečení databáze GRANT (Transact-SQL)
Oprávnění k objektu zabezpečení databáze REVOKE (Transact-SQL)
sys.database_principals (Transact-SQL)
sys.database_permissions (Transact-SQL)
VYTVOŘIT UŽIVATELE (Transact-SQL)
VYTVOŘENÍ APLIKAČNÍ ROLE (Transact-SQL)
VYTVOŘIT ROLI (Transact-SQL)
GRANT (Transact-SQL)
Oprávnění (databázový stroj)
Hlavní subjekty (databázový stroj)