DENY Permessi principali del database (Transact-SQL)

Si applica a:SQL Serverdatabase SQL di AzureAzure SQL Istanza gestitaDatabase SQL in Microsoft Fabric

Nega le autorizzazioni concesse per un utente di database, un ruolo del database o un ruolo applicazione in SQL Server.

Convenzioni relative alla sintassi Transact-SQL

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
Specifica un'autorizzazione che può essere negata per un'entità di database. Per un elenco delle autorizzazioni, vedere la sezione Osservazioni di seguito in questo argomento.

USER ::database_user
Specifica la classe e il nome dell'utente per cui viene negata l'autorizzazione. Il qualificatore di ambito (::) è obbligatorio.

ROLE ::database_role
Specifica la classe e il nome del ruolo per cui viene negata l'autorizzazione. Il qualificatore di ambito (::) è obbligatorio.

APPLICATION ROLE ::application_role
Si applica a: SQL Server 2008 (10.0.x) e versioni successive, database SQL.

Specifica la classe e il nome del ruolo applicazione per cui viene negata l'autorizzazione. Il qualificatore di ambito (::) è obbligatorio.

CASCADE
Indica che l'autorizzazione negata viene negata anche ad altre entità alle quali è stata concessa da questa entità.

COME <database_principal>
Specifica un'entità dalla quale l'entità che esegue la query ottiene il diritto di revocare l'autorizzazione.

Database_user
Specifica un utente di database.

Database_role
Specifica un ruolo del database.

Application_role
Si applica a: SQL Server 2008 (10.0.x) e versioni successive, database SQL.

Specifica un ruolo applicazione.

Database_user_mapped_to_Windows_User
Specifica un utente del database sul quale viene eseguito il mapping a un utente di Windows.

Database_user_mapped_to_Windows_Group
Specifica un utente del database sul quale viene eseguito il mapping a un gruppo di Windows.

Database_user_mapped_to_certificate
Specifica un utente del database sul quale viene eseguito il mapping a un certificato.

Database_user_mapped_to_asymmetric_key
Specifica un utente del database sul quale viene eseguito il mapping a una chiave asimmetrica.

Database_user_with_no_login
Specifica un utente del database per cui non esiste un'entità corrispondente a livello del server.

Remarks

Autorizzazioni per utenti di database

Un utente di database è un'entità a protezione diretta a livello di database contenuta nel database padre nella gerarchia delle autorizzazioni. Nella tabella seguente sono elencate le autorizzazioni più specifiche e limitate che è possibile negare per un utente di database, insieme alle autorizzazioni più generali che le includono in modo implicito.

Autorizzazione dell'utente di database Autorizzazione dell'utente di database in cui è inclusa Autorizzazione del database in cui è inclusa
CONTROL CONTROL CONTROL
IMPERSONATE CONTROL CONTROL
ALTER CONTROL MODIFICA QUALSIASI USER
VIEW DEFINIZIONE CONTROL VIEW DEFINIZIONE

Autorizzazioni per ruoli del database

Un ruolo del database è un'entità a protezione diretta a livello di database contenuta nel database padre nella gerarchia delle autorizzazioni. Nella tabella seguente sono elencate le autorizzazioni più specifiche e limitate che è possibile negare per un ruolo del database, insieme alle autorizzazioni più generali che le includono in modo implicito.

Autorizzazione del ruolo del database Autorizzazione del ruolo del database in cui è inclusa Autorizzazione del database in cui è inclusa
CONTROL CONTROL CONTROL
PRENDITI LA PROPRIETÀ CONTROL CONTROL
ALTER CONTROL MODIFICA QUALSIASI ROLE
VIEW DEFINIZIONE CONTROL VIEW DEFINIZIONE

Autorizzazioni per i ruoli applicazione

Un ruolo applicazione è un'entità a protezione diretta a livello di database contenuta nel database padre nella gerarchia delle autorizzazioni. Nella tabella seguente sono elencate le autorizzazioni più specifiche e limitate che è possibile negare per un ruolo applicazione, insieme alle autorizzazioni più generali che le includono in modo implicito.

Autorizzazione del ruolo applicazione Autorizzazione del ruolo applicazione in cui è inclusa Autorizzazione del database in cui è inclusa
CONTROL CONTROL CONTROL
ALTER CONTROL MODIFICA QUALSIASI APPLICATION ROLE
VIEW DEFINIZIONE CONTROL VIEW DEFINIZIONE

Permissions

È richiesta l'autorizzazione CONTROL per l'entità specificata o un'autorizzazione di livello superiore che include l'autorizzazione CONTROL.

Gli utenti che dispongono dell'autorizzazione CONTROL per un database, ad esempio i membri del ruolo predefinito del database db_owner, possono negare qualsiasi autorizzazione per qualsiasi entità a protezione diretta nel database.

Examples

A. Negazione dell'autorizzazione CONTROL per un utente a un altro utente

Il seguente esempio nega CONTROL il permesso al dispositivo utente WanidaRolandXa utente di AdventureWorks2025.

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

B. Negare VIEW il permesso di DEFINIZIONE su un ruolo a un utente a cui è stato concesso con GRANT OPTION

Il seguente esempio nega VIEW DEFINITION il permesso per il ruolo SammamishParking AdventureWorks2025 all'utente JinghaoLiudel database. L'opzione CASCADE è specificata perché all'utente JinghaoLiu è stato concesso VIEW il permesso DEFINIZIONE CON GRANT OPTION.

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

C. Negazione dell'autorizzazione IMPERSONATE per un utente a un ruolo applicazione

Il seguente esempio nega IMPERSONATE il permesso all'utente HamithaL di accedere al ruolo AccountsPayable17applicativo AdventureWorks2025.

Si applica a: SQL Server 2008 (10.0.x) e versioni successive, database SQL.

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

Vedere anche

GRANT Permessi principali del database (Transact-SQL)
REVOKE Permessi principali del database (Transact-SQL)
sys.database_principals (Transact-SQL)
sys.database_permissions (Transact-SQL)
CREATE USER (Transact-SQL)
CREATE APPLICATION ROLE (Transact-SQL)
CREATE ROLE (Transact-SQL)
GRANT (Transact-SQL)
Autorizzazioni (Motore di database)
Entità di sicurezza (motore di database)