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
Piattaforma di analisi (PDW)
Endpoint di analisi SQL in Microsoft Fabric
Magazzino in Microsoft Fabric
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. Concedere ALL equivale a concedere i seguenti permessi: BACKUP, LOG, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE, , e CREATE VIEW. BACKUPDATABASE
PRIVILEGES viene incluso per la conformità allo standard ANSI-92. Non modifica il funzionamento di ALL.
CON GRANT OPZIONE Indica che al mandante sarà anche data la possibilità di concedere il permesso specificato ad altri principali.
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.
| Permesso per il database | Autorizzazione del database in cui è inclusa | Autorizzazione del server in cui è inclusa |
|---|---|---|
| AMMINISTRARE DATABASE LE OPERAZIONI BULK Si applica a: database SQL. |
CONTROL | SERVER DI CONTROLLO |
| ALTER | CONTROL | MODIFICA QUALSIASI DATABASE |
| MODIFICA QUALSIASI APPLICATION ROLE | ALTER | SERVER DI CONTROLLO |
| MODIFICA QUALSIASI ASSEMBLY | ALTER | SERVER DI CONTROLLO |
| MODIFICA QUALSIASI ASYMMETRIC KEY | ALTER | SERVER DI CONTROLLO |
| MODIFICA QUALSIASI CERTIFICATE | ALTER | SERVER DI CONTROLLO |
| MODIFICA QUALSIASI COLUMN ENCRYPTION KEY | ALTER | SERVER DI CONTROLLO |
| ALTERARE QUALSIASI COLUMN MASTER KEY DEFINIZIONE | ALTER | SERVER DI CONTROLLO |
| MODIFICA QUALSIASI CONTRACT | ALTER | SERVER DI CONTROLLO |
| MODIFICA QUALSIASI DATABASE AUDIT | ALTER | MODIFICA QUALSIASI SERVER AUDIT |
| ALTERA QUALSIASI DATABASE DDL TRIGGER | ALTER | SERVER DI CONTROLLO |
| ALTERA QUALSIASI DATABASEEVENT NOTIFICATION | ALTER | MODIFICA QUALSIASI EVENT NOTIFICATION |
| ALTERA QUALSIASI DATABASEEVENT SESSION Si applica a: database SQL. |
ALTER | MODIFICA QUALSIASI EVENT SESSION |
| MODIFICA QUALSIASI DATABASE SCOPED CONFIGURATION Si applica a: SQL Server 2016 (13.x) e versioni successive, Database SQL. |
CONTROL | SERVER DI CONTROLLO |
| MODIFICARE QUALSIASI SPAZIO DATI | ALTER | SERVER DI CONTROLLO |
| MODIFICA QUALSIASI EXTERNAL DATA SOURCE | ALTER | SERVER DI CONTROLLO |
| MODIFICA QUALSIASI EXTERNAL FILE FORMAT | ALTER | SERVER DI CONTROLLO |
| MODIFICA QUALSIASI EXTERNAL LIBRARY Si applica a: SQL Server 2017 (14.x). |
CONTROL | SERVER DI CONTROLLO |
| MODIFICA QUALSIASI FULLTEXT CATALOG | ALTER | SERVER DI CONTROLLO |
| ALTERARE QUALSIASI MASCHERA | CONTROL | SERVER DI CONTROLLO |
| MODIFICA QUALSIASI MESSAGE TYPE | ALTER | SERVER DI CONTROLLO |
| MODIFICA QUALSIASI REMOTE SERVICE BINDING | ALTER | SERVER DI CONTROLLO |
| MODIFICA QUALSIASI ROLE | ALTER | SERVER DI CONTROLLO |
| MODIFICA QUALSIASI ROUTE | ALTER | SERVER DI CONTROLLO |
| MODIFICA QUALSIASI SCHEMA | ALTER | SERVER DI CONTROLLO |
| MODIFICA QUALSIASI SECURITY POLICY Si applica a: database SQL di Azure. |
CONTROL | SERVER DI CONTROLLO |
| MODIFICA QUALSIASI SENSITIVITY CLASSIFICATION Si applica a: SQL Server (SQL Server 2019 e versioni successive), Database SQL di Azure. |
CONTROL | SERVER DI CONTROLLO |
| MODIFICA QUALSIASI SERVICE | ALTER | SERVER DI CONTROLLO |
| MODIFICA QUALSIASI SYMMETRIC KEY | ALTER | SERVER DI CONTROLLO |
| MODIFICA QUALSIASI USER | ALTER | SERVER DI CONTROLLO |
| AUTHENTICATE | CONTROL | Autenticare server |
| BACKUP DATABASE | CONTROL | SERVER DI CONTROLLO |
| BACKUP LOG | CONTROL | SERVER DI CONTROLLO |
| CHECKPOINT | CONTROL | SERVER DI CONTROLLO |
| CONNECT | REPLICAZIONE DI CONNESSIONE | SERVER DI CONTROLLO |
| REPLICAZIONE DI CONNESSIONE | CONTROL | SERVER DI CONTROLLO |
| CONTROL | CONTROL | SERVER DI CONTROLLO |
| CREATE AGGREGATE | ALTER | SERVER DI CONTROLLO |
| CREA QUALSIASI EXTERNAL LIBRARY Si applica a: SQL Server 2017 (14.x). |
CONTROL | SERVER DI CONTROLLO |
| CREATE ASSEMBLY | MODIFICA QUALSIASI ASSEMBLY | SERVER DI CONTROLLO |
| CREATE ASYMMETRIC KEY | MODIFICA QUALSIASI ASYMMETRIC KEY | SERVER DI CONTROLLO |
| CREATE CERTIFICATE | MODIFICA QUALSIASI CERTIFICATE | SERVER DI CONTROLLO |
| CREATE CONTRACT | MODIFICA QUALSIASI CONTRACT | SERVER DI CONTROLLO |
| CREATE DATABASE | CONTROL | CREA QUALSIASI DATABASE |
| CREATE DATABASE DDL EVENT NOTIFICATION | ALTERA QUALSIASI DATABASEEVENT NOTIFICATION | CREATE DDL EVENT NOTIFICATION |
| CREATE DEFAULT | ALTER | SERVER DI CONTROLLO |
| CREATE FULLTEXT CATALOG | MODIFICA QUALSIASI FULLTEXT CATALOG | SERVER DI CONTROLLO |
| CREATE FUNCTION | ALTER | SERVER DI CONTROLLO |
| CREATE MESSAGE TYPE | MODIFICA QUALSIASI MESSAGE TYPE | SERVER DI CONTROLLO |
| CREATE PROCEDURE | ALTER | SERVER DI CONTROLLO |
| CREATE QUEUE | ALTER | SERVER DI CONTROLLO |
| CREATE REMOTE SERVICE BINDING | MODIFICA QUALSIASI REMOTE SERVICE BINDING | SERVER DI CONTROLLO |
| CREATE ROLE | MODIFICA QUALSIASI ROLE | SERVER DI CONTROLLO |
| CREATE ROUTE | MODIFICA QUALSIASI ROUTE | SERVER DI CONTROLLO |
| CREATE RULE | ALTER | SERVER DI CONTROLLO |
| CREATE SCHEMA | MODIFICA QUALSIASI SCHEMA | SERVER DI CONTROLLO |
| CREATE SERVICE | MODIFICA QUALSIASI SERVICE | SERVER DI CONTROLLO |
| CREATE SYMMETRIC KEY | MODIFICA QUALSIASI SYMMETRIC KEY | SERVER DI CONTROLLO |
| CREATE SYNONYM | ALTER | SERVER DI CONTROLLO |
| CREATE TABLE | ALTER | SERVER DI CONTROLLO |
| CREATE TYPE | ALTER | SERVER DI CONTROLLO |
| CREATE VIEW | ALTER | SERVER DI CONTROLLO |
| CREATE XML SCHEMA COLLECTION | ALTER | SERVER DI CONTROLLO |
| DELETE | CONTROL | SERVER DI CONTROLLO |
| EXECUTE | CONTROL | SERVER DI CONTROLLO |
| ESEGUI QUALSIASI ESTERNO ENDPOINT Si applica a: database SQL di Azure. |
CONTROL | SERVER DI CONTROLLO |
| ESEGUIRE QUALSIASI SCRIPT ESTERNO Si applica a: SQL Server 2016 (13.x). |
CONTROL | SERVER DI CONTROLLO |
| ESEGUI UNO SCRIPT ESTERNO Si applica a: SQL Server 2019 (15.x). |
Eseguire qualsiasi script esterno | SERVER DI CONTROLLO |
| INSERT | CONTROL | SERVER DI CONTROLLO |
| TERMINA DATABASE CONNESSIONE Si applica a: database SQL di Azure. |
CONTROL | ALTERARE QUALSIASI CONNESSIONE |
| REFERENCES | CONTROL | SERVER DI CONTROLLO |
| SELECT | CONTROL | SERVER DI CONTROLLO |
| SHOWPLAN | CONTROL | MODIFICA TRACCIA |
| SOTTOSCRIVERE LE NOTIFICHE DELLE QUERY | CONTROL | SERVER DI CONTROLLO |
| PRENDITI LA PROPRIETÀ | CONTROL | SERVER DI CONTROLLO |
| UNMASK | CONTROL | SERVER DI CONTROLLO |
| UPDATE | CONTROL | SERVER DI CONTROLLO |
| VIEW QUALSIASI COLUMN ENCRYPTION KEY DEFINIZIONE | CONTROL | VIEW QUALSIASI DEFINIZIONE |
| VIEW QUALSIASI COLUMN MASTER KEY DEFINIZIONE | CONTROL | VIEW QUALSIASI DEFINIZIONE |
| VIEW DATABASE STATO | CONTROL | VIEW STATO SERVER |
| VIEW DEFINIZIONE | CONTROL | VIEW QUALSIASI DEFINIZIONE |
Permissions
Il concedente (o il principale specificato con l'opzione AS) deve avere o il permesso stesso con GRANT OPTION, oppure un permesso superiore che implichi il permesso concesso.
Se si utilizza l'opzione AS, sono previsti i requisiti aggiuntivi seguenti.
| COME granting_principal | Autorizzazione aggiuntiva necessaria |
|---|---|
| Utente del database | 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. |
| Ruolo del database | 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. |
| Ruolo dell'applicazione | 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 AdventureWorks2025 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 CREATE VIEW con GRANT OPTION
Nell'esempio seguente viene concessa l'autorizzazione CREATE VIEW per il database AdventureWorks2025 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 AdventureWorks2025 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