Condividi tramite


DENY - autorizzazioni per server (Transact-SQL)

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di Azure

Nega le autorizzazioni per un server.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

DENY permission [ ,...n ]   
    TO <grantee_principal> [ ,...n ]  
    [ CASCADE ]  
    [ AS <grantor_principal> ]   
  
<grantee_principal> ::= SQL_Server_login   
    | SQL_Server_login_mapped_to_Windows_login  
    | SQL_Server_login_mapped_to_Windows_group  
    | SQL_Server_login_mapped_to_certificate  
    | SQL_Server_login_mapped_to_asymmetric_key  
    | server_role  
  
<grantor_principal> ::= SQL_Server_login   
    | SQL_Server_login_mapped_to_Windows_login  
    | SQL_Server_login_mapped_to_Windows_group  
    | SQL_Server_login_mapped_to_certificate  
    | SQL_Server_login_mapped_to_asymmetric_key  
    | server_role  

Argomenti

permission
Specifica un'autorizzazione che può essere negata per un server. Per un elenco delle autorizzazioni, vedere la sezione Osservazioni di seguito in questo argomento.

CASCADE
Indica che l'autorizzazione viene negata all'entità specificata e a tutte le entità alle quali l'entità ha concesso l'autorizzazione. Obbligatorio quando l'entità dispone dell'autorizzazione con GRANT OPTION.

A <server_principal>
Specifica l'entità a cui viene negata l'autorizzazione.

COME <grantor_principal>
Specifica un'entità dalla quale l'entità che esegue la query ottiene il diritto di negare l'autorizzazione. Usare la clausola AS principal per indicare che l'entità registrata come l'utente che nega l'autorizzazione deve essere un'entità diversa dalla persona che esegue l'istruzione. Si supponga ad esempio che l'utente Mary sia principal_id 12 e l'utente Raul sia principal 15. Mary esegue DENY SELECT ON OBJECT::X TO Steven WITH GRANT OPTION AS Raul; Ora la tabella sys.database_permissions indicherà che il grantor_principal_id dell'istruzione deny era 15 (Raul) anche se l'istruzione è stata effettivamente eseguita dall'utente 13 (Mary).

L'uso di AS in questa istruzione non implica la possibilità di rappresentare un altro utente.

SQL_Server_login
Specifica un account di accesso di SQL Server.

SQL_Server_login_mapped_to_Windows_login
Specifica un account di accesso di SQL Server mappato a un account di accesso di Windows.

SQL_Server_login_mapped_to_Windows_group
Specifica un account di accesso di SQL Server mappato a un gruppo di Windows.

SQL_Server_login_mapped_to_certificate
Specifica un account di accesso di SQL Server mappato a un certificato.

SQL_Server_login_mapped_to_asymmetric_key
Specifica un account di accesso di SQL Server mappato a una chiave asimmetrica.

server_role
Specifica un ruolo del server.

Osservazioni:

È possibile negare autorizzazioni nell'ambito del server solo se il database corrente è il database master.

Le informazioni sulle autorizzazioni del server sono visibili nella vista del catalogo sys.server_permissions e le informazioni sulle entità server nella vista del catalogo sys.server_principals. Le informazioni sulle appartenenze dei ruoli del server sono visibili nella vista del catalogo sys.server_role_members.

Un server rappresenta il livello più alto nella gerarchia delle autorizzazioni. Nella tabella seguente sono elencate le autorizzazioni più specifiche e limitate che è possibile negare per un server.

Autorizzazione del server Autorizzazione del server in cui è inclusa
AMMINISTRARE LE OPERAZIONI MASSIVE SERVER DI CONTROLLO
ALTERA QUALSIASI AVAILABILITY GROUP

Si applica a: SQL Server (SQL Server 2012 (11.x) fino alla versione corrente).
SERVER DI CONTROLLO
ALTERARE QUALSIASI CONNESSIONE SERVER DI CONTROLLO
ALTERA QUALSIASI CREDENZIALE SERVER DI CONTROLLO
MODIFICA QUALSIASI DATABASE SERVER DI CONTROLLO
MODIFICA QUALSIASI ENDPOINT SERVER DI CONTROLLO
MODIFICA QUALSIASI NOTIFICA DI EVENTO SERVER DI CONTROLLO
ALTERARE QUALSIASI SESSIONE DI EVENTO SERVER DI CONTROLLO
MODIFICARE QUALSIASI SERVER COLLEGATO SERVER DI CONTROLLO
MODIFICA QUALSIASI LOGIN SERVER DI CONTROLLO
MODIFICA QUALSIASI CONTROLLO DEL SERVER SERVER DI CONTROLLO
MODIFICARE QUALSIASI RUOLO DEL SERVER

Si applica a: SQL Server (SQL Server 2012 (11.x) fino alla versione corrente).
SERVER DI CONTROLLO
ALTER RISORSE SERVER DI CONTROLLO
MODIFICA STATO DEL SERVER SERVER DI CONTROLLO
MODIFICARE IMPOSTAZIONI SERVER DI CONTROLLO
ALTER TRACE SERVER DI CONTROLLO
Autenticare server SERVER DI CONTROLLO
COLLEGA QUALSIASI DATABASE

Si applica a: SQL Server (SQL Server 2014 (12.x) fino alla versione corrente).
SERVER DI CONTROLLO
CONNECT SQL SERVER DI CONTROLLO
SERVER DI CONTROLLO SERVER DI CONTROLLO
CREA QUALSIASI DATABASE MODIFICA QUALSIASI DATABASE
CREA GRUPPO DI DISPONIBILITÀ

Si applica a: SQL Server (SQL Server 2012 (11.x) fino alla versione corrente).
ALTERA QUALSIASI AVAILABILITY GROUP
CREA NOTIFICA DI EVENTO DDL MODIFICA QUALSIASI NOTIFICA DI EVENTO
CREA ENDPOINT MODIFICA QUALSIASI ENDPOINT
CREA RUOLO DEL SERVER

Si applica a: SQL Server (SQL Server 2012 (11.x) fino alla versione corrente).
MODIFICARE QUALSIASI RUOLO DEL SERVER
CREARE UNA NOTIFICA DEGLI EVENTI DI TRACCIA MODIFICA QUALSIASI NOTIFICA DI EVENTO
ASSEMBLEA DI ACCESSO ESTERNO SERVER DI CONTROLLO
RAPPRESENTA QUALSIASI ACCOUNT DI ACCESSO

Si applica a: SQL Server (SQL Server 2014 (12.x) fino alla versione corrente).
SERVER DI CONTROLLO
SELEZIONARE TUTTI GLI ELEMENTI PROTEGGIBILI DELL'UTENTE

Si applica a: SQL Server (SQL Server 2014 (12.x) fino alla versione corrente).
SERVER DI CONTROLLO
SHUTDOWN SERVER DI CONTROLLO
Assemblaggio non sicuro SERVER DI CONTROLLO
Visualizza qualsiasi database VISUALIZZA QUALSIASI DEFINIZIONE
VISUALIZZA QUALSIASI DEFINIZIONE SERVER DI CONTROLLO
VISUALIZZA STATO DEL SERVER MODIFICA STATO DEL SERVER

In SQL Server 2014 (12.x) sono state aggiunte le tre autorizzazioni server seguenti.

Autorizzazione CONNECT ANY DATABASE
Concedere l'autorizzazione CONNECT ANY DATABASE a un account di accesso che deve connettersi a tutti i database attualmente esistenti e ai nuovi database che potrebbero essere creati in futuro. Non concede alcuna autorizzazione nei database oltre la connessione. Combinare con SELECT ALL USER SECURABLES o VIEW SERVER STATE per consentire a un processo di controllo di visualizzare tutti i dati o tutti gli stati del database nell'istanza di SQL Server.

Autorizzazione IMPERSONATE ANY LOGIN
Quando viene concessa, consente a un processo di livello intermedio di rappresentare l'account dei client a cui ci si connette, quando si connette ai database. Quando viene negata, è possibile che a un account di accesso con privilegi elevati venga impedito di rappresentare altri account di accesso. Ad esempio, è possibile che a un account di accesso con autorizzazione CONTROL SERVER venga impedito di rappresentare altri account di accesso.

Autorizzazione SELECT ALL USER SECURABLES
Quando viene concessa, un account di accesso, ad esempio un revisore, può visualizzare i dati in tutti i database a cui l'utente può connettersi. Quando negata, impedisce l'accesso agli oggetti a meno che non siano nello schema sys.

Autorizzazioni

È richiesta l'autorizzazione CONTROL SERVER o la proprietà dell'entità a sicurezza diretta. Se si utilizza la clausola AS, l'entità specificata deve essere proprietaria dell'entità a sicurezza diretta per cui vengono negate le autorizzazioni.

Esempi

R. Negazione dell'autorizzazione CONNECT SQL a un account di accesso di SQL Server e alle entità a cui l'account di accesso ha concesso tale autorizzazione

Nell'esempio seguente viene negata l'autorizzazione CONNECT SQL all'account di accesso di SQL Server Annika e a tutte le entità a cui tale account di accesso ha concesso l'autorizzazione.

USE master;  
DENY CONNECT SQL TO Annika CASCADE;  
GO  

B. Negazione dell'autorizzazione CREATE ENDPOINT a un account di accesso di SQL Server con l'opzione AS

Nell'esempio seguente viene negata l'autorizzazione CREATE ENDPOINT all'utente ArifS. Nell'esempio viene utilizzata l'opzione AS per specificare MandarP come entità da cui l'entità che esegue l'istruzione deriva il diritto di effettuare l'operazione.

USE master;  
DENY CREATE ENDPOINT TO ArifS AS MandarP;  
GO  

Vedi anche

SOVVENZIONE (Transact-SQL)
NEGA (Transact-SQL)
DENY - autorizzazioni per server (Transact-SQL)
REVOKE - autorizzazioni per server (Transact-SQL)
Gerarchia delle autorizzazioni (Motore di database)
sys.fn_builtin_permissions (Transact-SQL)
sys.fn_my_permissions (Transact-SQL)
HAS_PERMS_BY_NAME (Transact-SQL)