GRANT - autorizzazioni per server (Transact-SQL)

Si applica a:yes SQL Server (tutte le versioni supportate)

Concede le autorizzazioni per un server.

Topic link iconConvenzioni della sintassi transact-SQL

Sintassi

  
GRANT permission [ ,...n ]   
    TO <grantee_principal> [ ,...n ] [ WITH GRANT OPTION ]  
    [ 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  

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 e versioni precedenti, vedere Documentazione delle versioni precedenti.

Argomenti

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

TO <grantee_principal> Specifica l'entità a cui viene concessa l'autorizzazione.

AS <grantor_principal> Specifica l'entità da cui l'entità che esegue questa query deriva il diritto di concedere l'autorizzazione.

WITH GRANT OPTION
Indica che l'entità potrà inoltre concedere l'autorizzazione specificata ad altre entità.

SQL_Server_login
Specifica un account di accesso SQL Server.

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

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

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

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

server_role
Specifica un ruolo del server definito dall'utente.

Osservazioni

È possibile concedere 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 concedere 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 (SQL Server 2012 (11.x) fino 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 (SQL Server 2012 (11.x) fino 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 (SQL Server 2014 (12.x) fino alla versione corrente.
CONTROL SERVER
CONNECT SQL CONTROL SERVER
CONTROL SERVER CONTROL SERVER
CREATE ANY DATABASE ALTER ANY DATABASE
Creare un gruppo di disponibilità

Si applica a: SQL Server (SQL Server 2012 (11.x) fino 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 (SQL Server 2012 (11.x) fino 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 (SQL Server 2014 (12.x) fino alla versione corrente.
CONTROL SERVER
SELECT ALL USER SECURABLES

Si applica a: SQL Server (SQL Server 2014 (12.x) tramite la 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

Le tre autorizzazioni del server seguenti sono state aggiunte in SQL Server 2014 (12.x).

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 concesso, un account di accesso può visualizzare i dati da tutti gli oggetti a livello di schema, ad esempio tabelle, viste e funzioni con valori di tabella che risiedono schemi scrivibili dall'utente (qualsiasi schema tranne sys e INFORMATION_SCHEMA) può essere usato per creare oggetti utente. Questa autorizzazione ha effetto in tutti i database a cui l'utente può connettersi. Se negato, impedisce l'accesso a tutti gli oggetti a meno che non si trovino nello schema sys- o INFORMATION_SCHEMA. Ciò ha effetto anche sulla visibilità dei metadati degli oggetti coperti, vedere anche: Configurazione della visibilità dei metadati.

Autorizzazioni

L'utente che concede le autorizzazioni (o l'entità specificata con l'opzione AS) deve disporre della relativa autorizzazione con GRANT OPTION oppure di un'autorizzazione di livello superiore che include l'autorizzazione che viene concessa. I membri del ruolo predefinito del server sysadmin possono concedere qualsiasi autorizzazione.

Esempi

R. Concessione di un'autorizzazione a un account di accesso

Nell'esempio seguente viene concessa CONTROL SERVER l'autorizzazione all'account di accesso TerryEminhizerSQL Server .

USE master;  
GRANT CONTROL SERVER TO TerryEminhizer;  
GO  

B. Concessione di un'autorizzazione che include l'autorizzazione GRANT

Nell'esempio seguente viene concesso ALTER ANY EVENT NOTIFICATION l'accesso JanethEsteves SQL Server con il diritto di concedere tale autorizzazione a un altro account di accesso.

USE master;  
GRANT ALTER ANY EVENT NOTIFICATION TO JanethEsteves WITH GRANT OPTION;  
GO  

C. Concessione di un'autorizzazione a un ruolo del server

Nell'esempio seguente viene creato un ruolo server denominato ITDevelopers. Concede l'autorizzazione ALTER ANY DATABASE al ruolo del ITDevelopers server.

USE master;  
CREATE SERVER ROLE ITDevelopers ;  
GRANT ALTER ANY DATABASE TO ITDevelopers ;  
GO  

Vedere anche

GRANT (Transact-SQL)
DENY (Transact-SQL)
DENY - autorizzazioni per server (Transact-SQL)
REVOKE - autorizzazioni per server (Transact-SQL)
Gerarchia delle autorizzazioni (Motore di database)
Entità (Motore di database)
Autorizzazioni (Motore di database)
sys.fn_builtin_permissions (Transact-SQL)
sys.fn_my_permissions (Transact-SQL)
HAS_PERMS_BY_NAME (Transact-SQL)