REVOKE - autorizzazioni per entità di database (Transact-SQL)
Revoca le autorizzazioni concesse o negate per un utente di database, un ruolo del database o un ruolo applicazione.
Convenzioni della sintassi Transact-SQL
Sintassi
REVOKE [ GRANT OPTION FOR ] permission [ ,...n ]
ON
{ [ USER :: database_user ]
| [ ROLE :: database_role ]
| [ APPLICATION ROLE :: application_role ]
}
{ FROM | 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 revocata 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 revocata l'autorizzazione. Il qualificatore di ambito (::) è obbligatorio.
- ROLE ::database_role
Specifica la classe e il nome del ruolo per cui viene revocata l'autorizzazione. Il qualificatore di ambito (::) è obbligatorio.
- APPLICATION ROLE ::application_role
Specifica la classe e il nome del ruolo applicazione per cui viene revocata l'autorizzazione. Il qualificatore di ambito (::) è obbligatorio.
GRANT OPTION
Indica che verrà revocato il diritto di concedere l'autorizzazione specificata ad altre entità. L'autorizzazione stessa non verrà revocata.Importante:
Se l'autorizzazione specificata è stata concessa all'entità senza l'opzione GRANT, l'autorizzazione stessa verrà revocata.
CASCADE
Indica che l'autorizzazione che viene revocata viene revocata anche ad altre entità a cui è stata concessa o negata da questa entità.Attenzione:
La revoca propagata di un'autorizzazione concessa con WITH GRANT OPTION comporterà la revoca sia delle autorizzazioni GRANT che delle autorizzazioni DENY per tale autorizzazione.
- 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 revocare 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 revocare 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 revocare 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 concedere qualsiasi autorizzazione per qualsiasi entità a protezione diretta nel database.
Esempi
A. Revoca dell'autorizzazione CONTROL per un utente a un altro utente
Nell'esempio seguente viene revocata l'autorizzazione CONTROL
per l'utente Wanida
del database AdventureWorks
all'utente RolandX
.
USE AdventureWorks;
REVOKE CONTROL ON USER::Wanida FROM RolandX;
GO
B. Revoca dell'autorizzazione VIEW DEFINITION per un ruolo a un utente a cui è stata concessa con WITH GRANT OPTION
Nell'esempio seguente viene revocata 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;
REVOKE VIEW DEFINITION ON ROLE::SammamishParking
FROM JinghaoLiu CASCADE;
GO
C. Revoca dell'autorizzazione IMPERSONATE per un utente a un ruolo applicazione
Nell'esempio seguente viene revocata l'autorizzazione IMPERSONATE
per l'utente HamithaL
al ruolo applicazione AccountsPayable17
del database AdventureWorks
.
USE AdventureWorks;
REVOKE IMPERSONATE ON USER::HamithaL FROM AccountsPayable17;
GO
Vedere anche
Riferimento
GRANT - autorizzazioni per entità di database (Transact-SQL)
DENY Database Principal Permissions (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)