Condividi tramite


DENY - autorizzazioni per entità di database (Transact-SQL)

Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure database 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

Sintassi

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   

Argomenti

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à.

AS <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.

Osservazioni:

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 ALTER ANY USER
VIEW DEFINITION CONTROL VIEW DEFINITION

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
TAKE OWNERSHIP CONTROL CONTROL
ALTER CONTROL ALTER ANY ROLE
VIEW DEFINITION CONTROL VIEW DEFINITION

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 ALTER ANY APPLICATION ROLE
VIEW DEFINITION CONTROL VIEW DEFINITION

Autorizzazioni

È 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.

Esempi

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

Nell'esempio seguente viene negata CONTROL l'autorizzazione per l'utente AdventureWorks2022 all'utente Wanida RolandX.

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

B. Negazione dell'autorizzazione VIEW DEFINITION per un ruolo a un utente a cui è stata concessa con GRANT OPTION

Nell'esempio seguente viene negata VIEW DEFINITION l'autorizzazione per il ruolo SammamishParking AdventureWorks2022 all'utente JinghaoLiudel database . Viene specificata l'opzione CASCADE perché all'utente JinghaoLiu l'autorizzazione VIEW DEFINITION è stata concessa con WITH 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

Nell'esempio seguente viene negata IMPERSONATE l'autorizzazione per l'utente HamithaL al ruolo AccountsPayable17applicazione AdventureWorks2022 .

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

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

Vedi anche

GRANT - Autorizzazioni per entità di database (Transact-SQL)
REVOKE - Autorizzazioni per entità di 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)