Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Database SQL di Azure
Istanza gestita di SQL di Azure
Azure Synapse Analytics
Sistema di Piattaforma di Analisi (PDW)
Endpoint di analisi SQL in Microsoft Fabric
Warehouse in Microsoft Fabric
Anteprima di Database SQL in Microsoft Fabric
Concede le autorizzazioni per un database in SQL Server.
Convenzioni relative alla sintassi Transact-SQL
Syntax
GRANT <permission> [ ,...n ]
TO <database_principal> [ ,...n ] [ WITH GRANT OPTION ]
[ AS <database_principal> ]
<permission>::=
permission | ALL [ PRIVILEGES ]
<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
Arguments
permission specifica un'autorizzazione che può essere concessa per un database. Per un elenco delle autorizzazioni, vedere la sezione Osservazioni di seguito in questo argomento.
L'opzione ALL non concede tutte le autorizzazioni possibili. La concessione di ALL equivale a concedere le autorizzazioni seguenti: BACKUP DATABASE, BACKUP LOG, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE e CREATE VIEW.
PRIVILEGES viene incluso per la conformità allo standard ANSI-92. Non modifica il funzionamento di ALL.
WITH GRANT OPTION indica che l'entità di sicurezza potrà anche concedere l'autorizzazione specificata ad altre entità di sicurezza.
AS <database_principal> Specifica un'entità dalla quale l'entità che esegue la query ottiene il diritto di concedere l'autorizzazione.
Database_user specifica un utente del 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 si applica a: SQL Server 2008 (10.0.x) e versioni successive
Specifica un utente del database sul quale viene eseguito il mapping a un utente di Windows.
Database_user_mapped_to_Windows_Group si applica a: SQL Server 2008 (10.0.x) e versioni successive
Specifica un utente del database sul quale viene eseguito il mapping a un gruppo di Windows.
Database_user_mapped_to_certificate si applica a: SQL Server 2008 (10.0.x) e versioni successive
Specifica un utente del database sul quale viene eseguito il mapping a un certificato.
Database_user_mapped_to_asymmetric_key si applica a: SQL Server 2008 (10.0.x) e versioni successive
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 senza entità di livello server corrispondente.
Remarks
Important
Una combinazione di autorizzazioni ALTER e REFERENCE potrebbe consentire in alcuni casi al beneficiario di visualizzare dati o eseguire funzioni non autorizzate. Un utente con autorizzazione ALTER per una tabella e autorizzazione REFERENCE per una funzione può ad esempio creare una colonna calcolata su una funzione e determinarne l'esecuzione. In questo caso, è inoltre necessario disporre dell'autorizzazione SELECT per la colonna calcolata.
Un database è un'entità a protezione diretta contenuta nel server padre nella gerarchia delle autorizzazioni. Nella tabella seguente sono elencate le autorizzazioni più specifiche e limitate che è possibile concedere per un database, insieme alle autorizzazioni più generali che le includono in modo implicito.
Database permission | Autorizzazione del database in cui è inclusa | Autorizzazione del server in cui è inclusa |
---|---|---|
AMMINISTRA LE OPERAZIONI DI MASSA DEL DATABASE Si applica a: database SQL. |
CONTROL | CONTROL SERVER |
ALTER | CONTROL | MODIFICA QUALSIASI DATABASE |
MODIFICA QUALSIASI RUOLO DELL'APPLICAZIONE | ALTER | CONTROL SERVER |
ALTERA QUALSIASI ASSEMBLY | ALTER | CONTROL SERVER |
ALTERA QUALSIASI CHIAVE ASIMMETRICA | ALTER | CONTROL SERVER |
MODIFICA QUALSIASI CERTIFICATO | ALTER | CONTROL SERVER |
ALTERA QUALSIASI CHIAVE DI CRITTOGRAFIA DELLA COLONNA | ALTER | CONTROL SERVER |
ALTER ANY COLUMN MASTER KEY DEFINITION | ALTER | CONTROL SERVER |
MODIFICA QUALSIASI CONTRATTO | ALTER | CONTROL SERVER |
ALTERARE QUALSIASI AUDIT DEL DATABASE | ALTER | MODIFICA QUALSIASI CONTROLLO DEL SERVER |
ALTERA QUALSIASI TRIGGER DDL DEL DATABASE | ALTER | CONTROL SERVER |
ALTER QUALSIASI NOTIFICA DI EVENTO DEL DATABASE | ALTER | MODIFICA QUALSIASI NOTIFICA DI EVENTO |
ALTERARE QUALSIASI SESSIONE DI EVENTO DEL DATABASE Si applica a: database SQL. |
ALTER | ALTERARE QUALSIASI SESSIONE DI EVENTO |
ALTER QUALSIASI CONFIGURAZIONE AMBITO DATABASE Si applica a: SQL Server 2016 (13.x) e versioni successive, Database SQL. |
CONTROL | CONTROL SERVER |
MODIFICARE QUALSIASI SPAZIO DATI | ALTER | CONTROL SERVER |
ALTERA QUALSIASI FONTE DATI ESTERNA | ALTER | CONTROL SERVER |
MODIFICARE QUALSIASI FORMATO DI FILE ESTERNO | ALTER | CONTROL SERVER |
ALTER ANY EXTERNAL LIBRARY Si applica a: SQL Server 2017 (14.x). |
CONTROL | CONTROL SERVER |
ALTER QUALSIASI CATALOGO FULLTEXT | ALTER | CONTROL SERVER |
ALTERARE QUALSIASI MASCHERA | CONTROL | CONTROL SERVER |
MODIFICARE QUALSIASI TIPO DI MESSAGGIO | ALTER | CONTROL SERVER |
MODIFICA QUALSIASI ASSOCIAZIONE DI SERVIZIO REMOTO | ALTER | CONTROL SERVER |
MODIFICA QUALSIASI RUOLO | ALTER | CONTROL SERVER |
ALTERA QUALSIASI ROTTA | ALTER | CONTROL SERVER |
ALTERARE QUALSIASI SCHEMA | ALTER | CONTROL SERVER |
ALTERARE QUALSIASI POLITICA DI SICUREZZA Si applica a: database SQL di Azure. |
CONTROL | CONTROL SERVER |
MODIFICARE LE CLASSIFICAZIONI DI SENSIBILITÀ Si applica a: SQL Server (SQL Server 2019 e versioni successive), Database SQL di Azure. |
CONTROL | CONTROL SERVER |
MODIFICARE QUALSIASI SERVIZIO | ALTER | CONTROL SERVER |
ALTERARE QUALSIASI CHIAVE SIMMETRICA | ALTER | CONTROL SERVER |
ALTERARE QUALSIASI UTENTE | ALTER | CONTROL SERVER |
AUTHENTICATE | CONTROL | AUTHENTICATE SERVER |
BACKUP DATABASE | CONTROL | CONTROL SERVER |
BACKUP LOG | CONTROL | CONTROL SERVER |
CHECKPOINT | CONTROL | CONTROL SERVER |
CONNECT | CONNECT REPLICATION | CONTROL SERVER |
CONNECT REPLICATION | CONTROL | CONTROL SERVER |
CONTROL | CONTROL | CONTROL SERVER |
CREATE AGGREGATE | ALTER | CONTROL SERVER |
CREARE QUALSIASI LIBRERIA ESTERNA Si applica a: SQL Server 2017 (14.x). |
CONTROL | CONTROL SERVER |
CREATE ASSEMBLY | ALTERA QUALSIASI ASSEMBLY | CONTROL SERVER |
CREA CHIAVE ASIMMETRICA | ALTERA QUALSIASI CHIAVE ASIMMETRICA | CONTROL SERVER |
CREATE CERTIFICATE | MODIFICA QUALSIASI CERTIFICATO | CONTROL SERVER |
CREATE CONTRACT | MODIFICA QUALSIASI CONTRATTO | CONTROL SERVER |
CREATE DATABASE | CONTROL | CREA QUALSIASI DATABASE |
NOTIFICA EVENTO DDL DEL DATABASE | ALTER QUALSIASI NOTIFICA DI EVENTO DEL DATABASE | CREA NOTIFICA DI EVENTO DDL |
CREATE DEFAULT | ALTER | CONTROL SERVER |
CREA CATALOGO FULLTEXT | ALTER QUALSIASI CATALOGO FULLTEXT | CONTROL SERVER |
CREATE FUNCTION | ALTER | CONTROL SERVER |
CREA TIPO DI MESSAGGIO | MODIFICARE QUALSIASI TIPO DI MESSAGGIO | CONTROL SERVER |
CREATE PROCEDURE | ALTER | CONTROL SERVER |
CREATE QUEUE | ALTER | CONTROL SERVER |
CREA ASSOCIAZIONE DI SERVIZIO REMOTO | MODIFICA QUALSIASI ASSOCIAZIONE DI SERVIZIO REMOTO | CONTROL SERVER |
CREATE ROLE | MODIFICA QUALSIASI RUOLO | CONTROL SERVER |
CREATE ROUTE | ALTERA QUALSIASI ROTTA | CONTROL SERVER |
CREATE RULE | ALTER | CONTROL SERVER |
CREATE SCHEMA | ALTERARE QUALSIASI SCHEMA | CONTROL SERVER |
CREATE SERVICE | MODIFICARE QUALSIASI SERVIZIO | CONTROL SERVER |
CREARE CHIAVE SIMMETRICA | ALTERARE QUALSIASI CHIAVE SIMMETRICA | CONTROL SERVER |
CREATE SYNONYM | ALTER | CONTROL SERVER |
CREATE TABLE | ALTER | CONTROL SERVER |
CREATE TYPE | ALTER | CONTROL SERVER |
CREATE VIEW | ALTER | CONTROL SERVER |
CREA XML SCHEMA COLLECTION | ALTER | CONTROL SERVER |
DELETE | CONTROL | CONTROL SERVER |
EXECUTE | CONTROL | CONTROL SERVER |
ESEGUIRE QUALSIASI ENDPOINT ESTERNO Si applica a: database SQL di Azure. |
CONTROL | CONTROL SERVER |
ESEGUIRE QUALSIASI SCRIPT ESTERNO Si applica a: SQL Server 2016 (13.x). |
CONTROL | CONTROL SERVER |
EXECUTE EXTERNAL SCRIPT Si applica a: SQL Server 2019 (15.x). |
Eseguire qualsiasi script esterno | CONTROL SERVER |
INSERT | CONTROL | CONTROL SERVER |
Interrompi connessione al database Si applica a: database SQL di Azure. |
CONTROL | ALTERARE QUALSIASI CONNESSIONE |
REFERENCES | CONTROL | CONTROL SERVER |
SELECT | CONTROL | CONTROL SERVER |
SHOWPLAN | CONTROL | ALTER TRACE |
SOTTOSCRIVERE LE NOTIFICHE DELLE QUERY | CONTROL | CONTROL SERVER |
TAKE OWNERSHIP | CONTROL | CONTROL SERVER |
UNMASK | CONTROL | CONTROL SERVER |
UPDATE | CONTROL | CONTROL SERVER |
VISUALIZZARE QUALSIASI DEFINIZIONE DELLA CHIAVE DI CRITTOGRAFIA DELLA COLONNA | CONTROL | VISUALIZZA QUALSIASI DEFINIZIONE |
VISUALIZZARE LA DEFINIZIONE DELLA CHIAVE MASTER DI QUALSIASI COLONNA | CONTROL | VISUALIZZA QUALSIASI DEFINIZIONE |
VISUALIZZARE LO STATO DEL DATABASE | CONTROL | VISUALIZZA STATO DEL SERVER |
VIEW DEFINITION | CONTROL | VISUALIZZA QUALSIASI DEFINIZIONE |
Permissions
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.
Se si utilizza l'opzione AS, sono previsti i requisiti aggiuntivi seguenti.
AS granting_principal | Autorizzazione aggiuntiva necessaria |
---|---|
Database user | Autorizzazione IMPERSONATE per l'utente, appartenenza al ruolo predefinito del database db_securityadmin, appartenenza al ruolo predefinito del database db_owner o appartenenza al ruolo predefinito del server sysadmin. |
Utente del database di cui è stato eseguito il mapping a un account di accesso di Windows | Autorizzazione IMPERSONATE per l'utente, appartenenza al ruolo predefinito del database db_securityadmin, appartenenza al ruolo predefinito del database db_owner o appartenenza al ruolo predefinito del server sysadmin. |
Utente del database di cui è stato eseguito il mapping a un gruppo di Windows | Appartenenza al gruppo di Windows, appartenenza al ruolo predefinito del database db_securityadmin, appartenenza al ruolo predefinito del database db_owner o appartenenza al ruolo predefinito del server sysadmin. |
Utente del database di cui è stato eseguito il mapping a un certificato | Appartenenza al ruolo predefinito del database db_securityadmin, appartenenza al ruolo predefinito del database db_owner o appartenenza al ruolo predefinito del server sysadmin. |
Utente del database di cui è stato eseguito il mapping a una chiave asimmetrica | Appartenenza al ruolo predefinito del database db_securityadmin, appartenenza al ruolo predefinito del database db_owner o appartenenza al ruolo predefinito del server sysadmin. |
Utente del database di cui non è stato eseguito il mapping ad alcuna entità server | Autorizzazione IMPERSONATE per l'utente, appartenenza al ruolo predefinito del database db_securityadmin, appartenenza al ruolo predefinito del database db_owner o appartenenza al ruolo predefinito del server sysadmin. |
Database role | Autorizzazione ALTER per il ruolo, appartenenza al ruolo predefinito del database db_securityadmin, appartenenza al ruolo predefinito del database db_owner o appartenenza al ruolo predefinito del server sysadmin. |
Application role | Autorizzazione ALTER per il ruolo, appartenenza al ruolo predefinito del database db_securityadmin, appartenenza al ruolo predefinito del database db_owner o appartenenza al ruolo predefinito del server sysadmin. |
I proprietari degli oggetti possono concedere autorizzazioni per gli oggetti di cui sono proprietari. Le entità con l'autorizzazione CONTROL per un'entità a protezione diretta possono concedere l'autorizzazione per quella entità.
Gli utenti che dispongono dell'autorizzazione CONTROL SERVER, ad esempio i membri del ruolo predefinito del server sysadmin, possono concedere qualsiasi autorizzazione per qualsiasi entità a protezione diretta nel server.
Examples
A. Concessione dell'autorizzazione per la creazione di tabelle
Nell'esempio seguente viene concessa l'autorizzazione CREATE TABLE
per il database AdventureWorks
all'utente MelanieK
.
USE AdventureWorks;
GRANT CREATE TABLE TO MelanieK;
GO
B. Concessione dell'autorizzazione SHOWPLAN a un ruolo applicazione
Nell'esempio seguente viene concessa l'autorizzazione SHOWPLAN
per il database AdventureWorks2022
al ruolo applicazione AuditMonitor
.
Si applica a: SQL Server 2008 (10.0.x) e versioni successive, database SQL
USE AdventureWorks2022;
GRANT SHOWPLAN TO AuditMonitor;
GO
C. Concessione dell'autorizzazione CREATE VIEW con GRANT OPTION
Nell'esempio seguente viene concessa l'autorizzazione CREATE VIEW
per il database AdventureWorks2022
all'utente CarmineEs
con il diritto di concedere l'autorizzazione CREATE VIEW
ad altre entità.
USE AdventureWorks2022;
GRANT CREATE VIEW TO CarmineEs WITH GRANT OPTION;
GO
D. Concessione dell'autorizzazione CONTROL a un utente del database
Nell'esempio seguente viene concessa l'autorizzazione CONTROL
per il database AdventureWorks2022
all'utente del database Sarah
. L'utente deve esistere nel database e il contesto deve essere impostato sul database.
USE AdventureWorks2022;
GRANT CONTROL ON DATABASE::AdventureWorks2022 TO Sarah;
GO