DENY Database Principal Permissions (Transact-SQL)
Nega le autorizzazioni concesse per un utente di database, un ruolo del database o un ruolo applicazione.
Convenzioni della 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
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
Specifica un ruolo applicazione.
- Database_user_mapped_to_Windows_User
Specifica un utente del database mappato a un utente di Windows.
- Database_user_mapped_to_Windows_Group
Specifica un utente del database mappato a un gruppo di Windows.
- Database_user_mapped_to_certificate
Specifica un utente del database mappato a un certificato.
- Database_user_mapped_to_asymmetric_key
Specifica un utente del database mappato 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 includa 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
A. Negazione dell'autorizzazione CONTROL per un utente a un altro utente
Nell'esempio seguente viene negata l'autorizzazione CONTROL
per l'utente Wanida
del database AdventureWorks
all'utente RolandX
.
USE AdventureWorks;
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 l'autorizzazione VIEW DEFINITION
per il ruolo SammamishParking
del database AdventureWorks
all'utente di database JinghaoLiu
. Viene specificata l'opzione CASCADE
perché all'utente JinghaoLiu
l'autorizzazione VIEW DEFINITION è stata concessa con WITH GRANT OPTION.
USE AdventureWorks;
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 l'autorizzazione IMPERSONATE
per l'utente HamithaL
al ruolo applicazione AccountsPayable17
del database AdventureWorks
.
USE AdventureWorks;
DENY IMPERSONATE ON USER::HamithaL TO AccountsPayable17;
GO
Vedere anche
Riferimento
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)