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 JinghaoLiu
del 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 AccountsPayable17
applicazione 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)