Condividi tramite


DENY - autorizzazioni per server (Transact-SQL)

Nega le autorizzazioni per un server.

Si applica a: SQL Server (da SQL Server 2008 alla versione corrente).

Icona di collegamento a un argomento Convenzioni della 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 negata viene negata anche ad altre entità alle quali è stata concessa da questa entità.

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

  • AS <grantor_principal>
    Specifica un'entità dalla quale l'entità che esegue la query ottiene il diritto di negare l'autorizzazione.

  • 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 sul quale viene eseguito il mapping a un utente di Windows.

  • SQL_Server_login_mapped_to_Windows_group
    Specifica un account di accesso di SQL Server sul quale viene eseguito il mapping a un gruppo di Windows.

  • SQL_Server_login_mapped_to_certificate
    Specifica un account di accesso di SQL Server di cui è stato eseguito il mapping a un certificato.

  • SQL_Server_login_mapped_to_asymmetric_key
    Specifica un account di accesso di SQL Server di cui è stato eseguito il mapping 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.

È possibile visualizzare le informazioni sulle autorizzazioni del server 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

ADMINISTER BULK OPERATIONS

CONTROL SERVER

ALTER ANY AVAILABILITY GROUP

Si applica a: SQL Server (da SQL Server 2012 alla versione corrente).

CONTROL SERVER

ALTER ANY CONNECTION

CONTROL SERVER

ALTER ANY CREDENTIAL

CONTROL SERVER

ALTER ANY DATABASE

CONTROL SERVER

ALTER ANY ENDPOINT

CONTROL SERVER

ALTER ANY EVENT NOTIFICATION

CONTROL SERVER

ALTER ANY EVENT SESSION

CONTROL SERVER

ALTER ANY LINKED SERVER

CONTROL SERVER

ALTER ANY LOGIN

CONTROL SERVER

ALTER ANY SERVER AUDIT

CONTROL SERVER

ALTER ANY SERVER ROLE

Si applica a: SQL Server (da SQL Server 2012 alla versione corrente).

CONTROL SERVER

ALTER RESOURCES

CONTROL SERVER

ALTER SERVER STATE

CONTROL SERVER

ALTER SETTINGS

CONTROL SERVER

ALTER TRACE

CONTROL SERVER

AUTHENTICATE SERVER

CONTROL SERVER

CONNECT ANY DATABASE

Si applica a: SQL Server (da SQL Server 2014 alla versione corrente).

CONTROL SERVER

CONNECT SQL

CONTROL SERVER

CONTROL SERVER

CONTROL SERVER

CREATE ANY DATABASE

ALTER ANY DATABASE

CREATE AVAILABILITY GROUP

Si applica a: SQL Server (da SQL Server 2012 alla versione corrente).

ALTER ANY AVAILABILITY GROUP

CREATE DDL EVENT NOTIFICATION

ALTER ANY EVENT NOTIFICATION

CREATE ENDPOINT

ALTER ANY ENDPOINT

CREATE SERVER ROLE

Si applica a: SQL Server (da SQL Server 2012 alla versione corrente).

ALTER ANY SERVER ROLE

CREATE TRACE EVENT NOTIFICATION

ALTER ANY EVENT NOTIFICATION

EXTERNAL ACCESS ASSEMBLY

CONTROL SERVER

IMPERSONATE ANY LOGIN

Si applica a: SQL Server (da SQL Server 2014 alla versione corrente).

CONTROL SERVER

SELECT ALL USER SECURABLES

Si applica a: SQL Server (da SQL Server 2014 alla versione corrente).

CONTROL SERVER

SHUTDOWN

CONTROL SERVER

UNSAFE ASSEMBLY

CONTROL SERVER

VIEW ANY DATABASE

VIEW ANY DEFINITION

VIEW ANY DEFINITION

CONTROL SERVER

VIEW SERVER STATE

ALTER SERVER STATE

Osservazioni

In SQL Server 2014 sono state aggiunte le tre autorizzazioni server riportate di seguito.

  • 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

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

Vedere anche

Riferimento

GRANT (Transact-SQL)

DENY (Transact-SQL)

DENY - autorizzazioni per server (Transact-SQL)

REVOKE - autorizzazioni per server (Transact-SQL)

sys.fn_builtin_permissions (Transact-SQL)

sys.fn_my_permissions (Transact-SQL)

HAS_PERMS_BY_NAME (Transact-SQL)

Concetti

Gerarchia delle autorizzazioni (Motore di database)