Autorizzazioni (Motore di database)
Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW)
A ogni entità a protezione diretta di SQL Server sono associate autorizzazioni che possono essere concesse a un'entità di sicurezza. Le autorizzazioni nel motore di database vengono gestite a livello di server, assegnate agli account di accesso e ai ruoli del server, e a livello di database assegnate agli utenti e ai ruoli del database. Il modello per il Database SQL di Azure ha lo stesso sistema di autorizzazioni del database, ma le autorizzazioni a livello di server non sono disponibili. Questo articolo contiene l'elenco completo delle autorizzazioni. Per un'implementazione tipica delle autorizzazioni, vedere Getting Started with Database Engine Permissions.
Il numero totale di autorizzazioni per SQL Server 2022 (16.x) è 292. Il Database SQL di Azure espone 292 autorizzazioni. La maggior parte delle autorizzazioni si applica a tutte le piattaforme, mentre alcune non si applicano a tutte le piattaforme. Ad esempio, la maggior parte delle autorizzazioni a livello di server non possono essere concesse nel Database SQL di Azure e alcune autorizzazioni hanno senso solo nel Database SQL di Azure. Con i nuovi rilasci verranno introdotte gradualmente nuove autorizzazioni. SQL Server 2019 (15.x) espone 248 autorizzazioni. SQL Server 2017 (14.x) ha esposto 238 autorizzazioni. SQL Server 2016 (13.x) ha esposto 230 autorizzazioni. SQL Server 2014 (12.x) ha esposto 219 autorizzazioni. SQL Server 2012 (11.x) ha esposto 214 autorizzazioni. SQL Server 2008 R2 (10.50.x) ha esposto 195 autorizzazioni. L'articolo sys.fn_builtin_permissions specifica le nuove autorizzazioni nelle versioni recenti.
Una volta comprese le autorizzazioni richieste, applicare le autorizzazioni a livello di server agli account di accesso e le autorizzazioni a livello di database agli utenti o ruoli del database usando le istruzioni GRANT, REVOKE e DENY. Ad esempio:
GRANT SELECT ON SCHEMA::HumanResources TO role_HumanResourcesDept;
REVOKE SELECT ON SCHEMA::HumanResources TO role_HumanResourcesDept;
Per suggerimenti sulla pianificazione di un sistema di autorizzazioni, vedere Introduzione alle autorizzazioni del motore di database.
Convenzioni di denominazione delle autorizzazioni
Di seguito vengono descritte le convenzioni generali adottate per la denominazione delle autorizzazioni:
CONTROL
Conferisce al beneficiario capacità da proprietario. In pratica il beneficiario dispone di tutte le autorizzazioni definite sull'entità a protezione diretta. Un'entità a cui è stata conferita un'autorizzazione CONTROL può a sua volta concedere autorizzazioni sull'entità a protezione diretta. Poiché il modello di sicurezza di SQL Server è di tipo gerarchico, CONTROL in un particolare ambito include implicitamente CONTROL su tutte le entità a protezione diretta in tale ambito. Un'autorizzazione CONTROL su un database, ad esempio, implica tutte le autorizzazioni sul database, su tutti gli assembly del database, su tutti gli schemi del database e sugli oggetti contenuti in tutti gli schemi del database.
ALTER
Conferisce la capacità di modificare le proprietà, eccetto il diritto di proprietà, di una particolare entità a protezione diretta. Quando viene concessa in un ambito, l'autorizzazione ALTER concede la capacità di modificare, creare o eliminare una qualsiasi entità a protezione diretta contenuta in tale ambito. Un'autorizzazione ALTER in uno schema, ad esempio, include la capacità di creare, modificare ed eliminare oggetti contenuti nello schema.
ALTER ANY <Server Securable>, dove Server Securable può essere qualunque server a protezione diretta.
Conferisce la capacità di creare, modificare o eliminare singole istanze dell' Entità a protezione diretta del server. L'autorizzazione ALTER ANY LOGIN, ad esempio, conferisce la capacità di creare, modificare o eliminare un qualsiasi account di accesso nell'istanza.
ALTER ANY <Database Securable>, dove Database Securable può essere qualunque entità a protezione diretta a livello di database.
Conferisce la capacità di creare, modificare o eliminare singole istanze dell' Entità a protezione diretta del database. L'autorizzazione ALTER ANY SCHEMA, ad esempio, conferisce la capacità di creare, modificare o eliminare un qualsiasi schema contenuto nel database.
TAKE OWNERSHIP
Consente al beneficiario di prendere possesso dell'entità a protezione diretta sulla quale viene concessa questa autorizzazione.
IMPERSONATE <Account di accesso>
Consente al beneficiario di rappresentare l'account di accesso.
IMPERSONATE <Utente>
Consente al beneficiario di rappresentare l'utente.
CREATE <Entità a protezione diretta del server>
Conferisce al beneficiario la capacità di creare l' Entità a protezione diretta del server.
CREATE <Entità a protezione diretta del database>
Conferisce al beneficiario la capacità di creare l' Entità a protezione diretta del database.
CREATE <Entità a protezione diretta contenuta in uno schema>
Conferisce la capacità di creare un'entità a protezione diretta contenuta in uno schema. Per creare un'entità a protezione diretta in un particolare schema, è però necessario avere un'autorizzazione ALTER sullo schema.
VIEW DEFINITION
Consente al beneficiario di accedere a metadati.
REFERENCES
L'autorizzazione REFERENCES su una tabella è necessaria per creare un vincolo FOREIGN KEY che faccia riferimento alla tabella stessa.
L'autorizzazione REFERENCES è necessaria su un oggetto per creare FUNCTION o VIEW con la clausola
WITH SCHEMABINDING
che faccia riferimento all'oggetto stesso.
Grafico delle autorizzazioni di SQL Server
La figura seguente illustra le autorizzazioni e le relative relazioni tra loro. Alcune delle autorizzazioni di livello superiore (ad esempio CONTROL SERVER
) sono elencate più volte. In questo articolo l'anteprima è molto piccola e non può essere consultata. È possibile scaricare il Poster relativo alle autorizzazioni del motore di database a dimensione intera in formato PDF.
Autorizzazioni applicabili a particolari entità a protezione diretta
Nella tabella seguente vengono elencate le classi principali di autorizzazione e i tipi di entità a protezione diretta a cui possono essere applicati.
Autorizzazione | Si applica a |
---|---|
ALTER | Tutte le classi di oggetti ad eccezione di TYPE |
CONTROL | Tutte le classi di oggetti: AGGREGATE, APPLICATION ROLE, ASSEMBLY, ASYMMETRIC KEY, AVAILABILITY GROUP, CERTIFICATE, CONTRACT, CREDENTIALS, DATABASE, DATABASE SCOPED CREDENTIAL, DEFAULT, ENDPOINT, FULLTEXT CATALOG, FULLTEXT STOPLIST, FUNCTION, LOGIN, MESSAGE TYPE, PROCEDURE, QUEUE, REMOTE SERVICE BINDING, ROLE, ROUTE, RULE, SCHEMA, SEARCH PROPERTY LIST, SERVER, SERVER ROLE, SERVICE, SYMMETRIC KEY, SYNONYM, TABLE, TYPE, USER, VIEW e XML SCHEMA COLLECTION |
DELETE | Tutte le classi di oggetti ad eccezione di DATABASE SCOPED CONFIGURATION, SERVER e TYPE. |
EXECUTE | tipi CLR, script esterni, procedure (Transact-SQL e CLR), funzioni scalari e di aggregazione (Transact-SQL e CLR) e sinonimi |
IMPERSONATE | Account di accesso e utenti |
INSERT … | Sinonimi, tabelle e colonne, viste e colonne. L'autorizzazione può essere concesso a livello di database, schema oppure oggetto |
AREARICEV | Code di Service Broker |
REFERENCES | AGGREGATE, ASSEMBLY, ASYMMETRIC KEY, CERTIFICATE, CONTRACT, CREDENTIAL (si applica a SQL Server 2022 (16.x) e versioni successive, DATABASE, DATABASE SCOPED CREDENTIAL, FULLTEXT CATALOG, FULLTEXT STOPLIST, FUNCTION, MESSAGE TYPE, PROCEDURE, QUEUE, RULE, SCHEMA, SEARCH PROPERTY LIST, SEQUENCE OBJECT, SYMMETRIC KEY, TABLE, TYPE, VIEW e XML SCHEMA COLLECTION |
SELECT | Sinonimi, tabelle e colonne, viste e colonne. L'autorizzazione può essere concesso a livello di database, schema oppure oggetto |
TAKE OWNERSHIP | Tutte le classi di oggetti ad eccezione di DATABASE SCOPED CONFIGURATION LOGIN, SERVER e USER |
UPDATE | Sinonimi, tabelle e colonne, viste e colonne. L'autorizzazione può essere concesso a livello di database, schema oppure oggetto |
VIEW CHANGE TRACKING | Schemi e tabelle |
VIEW DEFINITION | Tutte le classi di oggetti ad eccezione di DATABASE SCOPED CONFIGURATION e SERVER |
Attenzione
Le autorizzazioni predefinite concesse a oggetti di sistema durante l'installazione vengono valutate attentamente per individuare possibili minacce, per cui non è necessario modificarle come parte della protezione avanzata dell'installazione di SQL Server. Eventuali modifiche alle autorizzazioni per gli oggetti di sistema possono limitare o compromettere la funzionalità e potrebbero lasciare l'installazione di SQL Server in uno stato non supportato.
Autorizzazioni di SQL Server
La tabella seguente contiene un elenco completo delle autorizzazioni di SQL Server. Le autorizzazioni del Database SQL di Azure sono disponibili solo per le entità a protezione diretta di base che sono supportate. Non è possibile concedere autorizzazioni a livello di server nel Database SQL di Azure, ma in alcuni casi sono disponibili autorizzazioni di database.
Entità a protezione diretta di base | Autorizzazioni di granularità sull'entità a protezione diretta di base | Codice tipo di autorizzazione | Entità a protezione diretta contenente l'entità a protezione diretta di base | Autorizzazione sull'entità a protezione diretta contenente che implica un'autorizzazione di granularità sull'entità a protezione diretta di base |
---|---|---|---|---|
APPLICATION ROLE | ALTER | AL | DATABASE | ALTER ANY APPLICATION ROLE |
APPLICATION ROLE | CONTROL | CL | DATABASE | CONTROL |
APPLICATION ROLE | VIEW DEFINITION | VW | DATABASE | VIEW DEFINITION |
ASSEMBLY | ALTER | AL | DATABASE | ALTER ANY ASSEMBLY |
ASSEMBLY | CONTROL | CL | DATABASE | CONTROL |
ASSEMBLY | REFERENCES | RF | DATABASE | REFERENCES |
ASSEMBLY | TAKE OWNERSHIP | TO | DATABASE | CONTROL |
ASSEMBLY | VIEW DEFINITION | VW | DATABASE | VIEW DEFINITION |
ASYMMETRIC KEY | ALTER | AL | DATABASE | ALTER ANY ASYMMETRIC KEY |
ASYMMETRIC KEY | CONTROL | CL | DATABASE | CONTROL |
ASYMMETRIC KEY | REFERENCES | RF | DATABASE | REFERENCES |
ASYMMETRIC KEY | TAKE OWNERSHIP | TO | DATABASE | CONTROL |
ASYMMETRIC KEY | VIEW DEFINITION | VW | DATABASE | VIEW DEFINITION |
AVAILABILITY GROUP | ALTER | AL | SERVER | ALTER ANY AVAILABILITY GROUP |
AVAILABILITY GROUP | CONTROL | CL | SERVER | CONTROL SERVER |
AVAILABILITY GROUP | TAKE OWNERSHIP | TO | SERVER | CONTROL SERVER |
AVAILABILITY GROUP | VIEW DEFINITION | VW | SERVER | VIEW ANY DEFINITION |
CERTIFICATE | ALTER | AL | DATABASE | ALTER ANY CERTIFICATE |
CERTIFICATE | CONTROL | CL | DATABASE | CONTROL |
CERTIFICATE | REFERENCES | RF | DATABASE | REFERENCES |
CERTIFICATE | TAKE OWNERSHIP | TO | DATABASE | CONTROL |
CERTIFICATE | VIEW DEFINITION | VW | DATABASE | VIEW DEFINITION |
CONTRACT | ALTER | AL | DATABASE | ALTER ANY CONTRACT |
CONTRACT | CONTROL | CL | DATABASE | CONTROL |
CONTRACT | REFERENCES | RF | DATABASE | REFERENCES |
CONTRACT | TAKE OWNERSHIP | TO | DATABASE | CONTROL |
CONTRACT | VIEW DEFINITION | VW | DATABASE | VIEW DEFINITION |
CREDENTIAL | CONTROL | CL | SERVER | CONTROL SERVER |
CREDENTIAL | REFERENCES | RF | SERVER | ALTER ANY CREDENTIAL |
DATABASE | ADMINISTER DATABASE BULK OPERATIONS | DABO | SERVER | CONTROL SERVER |
DATABASE | ALTER | AL | SERVER | ALTER ANY DATABASE |
DATABASE | ALTER ANY APPLICATION ROLE | ALAR | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY ASSEMBLY | ALAS | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY ASYMMETRIC KEY | ALAK | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY CERTIFICATE | ALCF | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY COLUMN ENCRYPTION KEY | ALCK Si applica a SQL Server (da SQL Server 2016 (13.x) fino alla versione corrente), Database SQL di Azure. |
SERVER | CONTROL SERVER |
DATABASE | ALTER ANY COLUMN MASTER KEY | ALCM Si applica a SQL Server (da SQL Server 2016 (13.x) fino alla versione corrente), Database SQL di Azure. |
SERVER | CONTROL SERVER |
DATABASE | ALTER ANY CONTRACT | ALSC | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY DATABASE AUDIT | ALDA | SERVER | ALTER ANY SERVER AUDIT |
DATABASE | ALTER ANY DATABASE DDL TRIGGER | ALTG | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY DATABASE EVENT NOTIFICATION | ALED | SERVER | ALTER ANY EVENT NOTIFICATION |
DATABASE | ALTER ANY DATABASE EVENT SESSION | AADS | SERVER | ALTER ANY EVENT SESSION |
DATABASE | ALTER ANY DATABASE EVENT SESSION ADD EVENT | LDAE | SERVER | ALTER ANY EVENT SESSION ADD EVENT |
DATABASE | ALTER ANY DATABASE EVENT SESSION ADD TARGET | LDAT | SERVER | ALTER ANY EVENT SESSION ADD TARGET |
DATABASE | ALTER ANY DATABASE EVENT SESSION DISABLE | DDES | SERVER | ALTER ANY EVENT SESSION DISABLE |
DATABASE | ALTER ANY DATABASE EVENT SESSION DROP EVENT | LDDE | SERVER | ALTER ANY EVENT SESSION DROP EVENT |
DATABASE | ALTER ANY DATABASE EVENT SESSION DROP TARGET | LDDT | SERVER | ALTER ANY EVENT SESSION DROP TARGET |
DATABASE | ALTER ANY DATABASE EVENT SESSION ENABLE | EDES | SERVER | ALTER ANY EVENT SESSION ENABLE |
DATABASE | ALTER ANY DATABASE EVENT SESSION OPTION | LDSO | SERVER | ALTER ANY EVENT SESSION OPTION |
DATABASE | ALTER ANY DATABASE SCOPED CONFIGURATION | ALDC Si applica a SQL Server (da SQL Server 2016 (13.x) fino alla versione corrente), Database SQL di Azure. |
SERVER | CONTROL SERVER |
DATABASE | ALTER ANY DATASPACE | ALDS | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY EXTERNAL DATA SOURCE | AEDS | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY EXTERNAL FILE FORMAT | AEFF | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY EXTERNAL JOB | AESJ | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY EXTERNAL LANGUAGE | ALLA | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY EXTERNAL LIBRARY | ALEL | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY EXTERNAL STREAM | AEST | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY FULLTEXT CATALOG | ALFT | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY MASK | AAMK Si applica a SQL Server (da SQL Server 2016 (13.x) fino alla versione corrente), Database SQL di Azure. |
SERVER | CONTROL SERVER |
DATABASE | ALTER ANY MESSAGE TYPE | ALMT | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY REMOTE SERVICE BINDING | ALSB | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY ROLE | ALRL | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY ROUTE | ALRT | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY SCHEMA | ALSM | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY SECURITY POLICY | ALSP Si applica a SQL Server (da SQL Server 2016 (13.x) fino alla versione corrente), Database SQL di Azure. |
SERVER | CONTROL SERVER |
DATABASE | MODIFICARE LE CLASSIFICAZIONI DI SENSIBILITÀ | AASC Si applica a SQL Server (da SQL Server 2019 (15.x) fino alla versione corrente), Database SQL di Azure. |
SERVER | CONTROL SERVER |
DATABASE | ALTER ANY SERVICE | ALSV | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY SYMMETRIC KEY | ALSK | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY USER | ALUS | SERVER | CONTROL SERVER |
DATABASE | ALTER LEDGER | ALR | SERVER | CONTROL |
DATABASE | ALTER LEDGER CONFIGURATION | ALC | SERVER | CONTROL SERVER |
DATABASE | AUTHENTICATE | AUTH | SERVER | AUTHENTICATE SERVER |
DATABASE | BACKUP DATABASE | BADB | SERVER | CONTROL SERVER |
DATABASE | BACKUP LOG | BALO | SERVER | CONTROL SERVER |
DATABASE | CHECKPOINT | CP | SERVER | CONTROL SERVER |
DATABASE | CONNECT | CO | SERVER | CONTROL SERVER |
DATABASE | CONNECT REPLICATION | CORP | SERVER | CONTROL SERVER |
DATABASE | CONTROL | CL | SERVER | CONTROL SERVER |
DATABASE | CREATE AGGREGATE | CRAG | SERVER | CONTROL SERVER |
DATABASE | CREATE ANY DATABASE EVENT SESSION | CRDS | SERVER | CREATE ANY EVENT SESSION |
DATABASE | CREATE ASSEMBLY | CRAS | SERVER | CONTROL SERVER |
DATABASE | CREATE ASYMMETRIC KEY | CRAK | SERVER | CONTROL SERVER |
DATABASE | CREATE CERTIFICATE | CRCF | SERVER | CONTROL SERVER |
DATABASE | CREATE CONTRACT | CRSC | SERVER | CONTROL SERVER |
DATABASE | CREATE DATABASE | CRDB | SERVER | CREATE ANY DATABASE |
DATABASE | CREATE DATABASE DDL EVENT NOTIFICATION | CRED | SERVER | CREATE DDL EVENT NOTIFICATION |
DATABASE | CREATE DEFAULT | CRDF | SERVER | CONTROL SERVER |
DATABASE | CREATE EXTERNAL LANGUAGE | CRLA | SERVER | CONTROL SERVER |
DATABASE | CREATE EXTERNAL LIBRARY | CREL | SERVER | CONTROL SERVER |
DATABASE | CREATE FULLTEXT CATALOG | CRFT | SERVER | CONTROL SERVER |
DATABASE | CREATE FUNCTION | CRFN | SERVER | CONTROL SERVER |
DATABASE | CREATE MESSAGE TYPE | CRMT | SERVER | CONTROL SERVER |
DATABASE | CREATE PROCEDURE | CRPR | SERVER | CONTROL SERVER |
DATABASE | CREATE QUEUE | CRQU | SERVER | CONTROL SERVER |
DATABASE | CREATE REMOTE SERVICE BINDING | CRSB | SERVER | CONTROL SERVER |
DATABASE | CREATE ROLE | CRRL | SERVER | CONTROL SERVER |
DATABASE | CREATE ROUTE | CRRT | SERVER | CONTROL SERVER |
DATABASE | CREATE RULE | CRRU | SERVER | CONTROL SERVER |
DATABASE | CREATE SCHEMA | CRSM | SERVER | CONTROL SERVER |
DATABASE | CREATE SERVICE | CRSV | SERVER | CONTROL SERVER |
DATABASE | CREATE SYMMETRIC KEY | CRSK | SERVER | CONTROL SERVER |
DATABASE | CREATE SYNONYM | CRSN | SERVER | CONTROL SERVER |
DATABASE | CREATE TABLE | CRTB | SERVER | CONTROL SERVER |
DATABASE | CREATE TYPE | CRTY | SERVER | CONTROL SERVER |
DATABASE | CREATE USER | CUSR | SERVER | CONTROL SERVER |
DATABASE | CREATE VIEW | CRVW | SERVER | CONTROL SERVER |
DATABASE | CREATE XML SCHEMA COLLECTION | CRXS | SERVER | CONTROL SERVER |
DATABASE | DELETE | DL | SERVER | CONTROL SERVER |
DATABASE | DROP ANY DATABASE EVENT SESSION | DRDS | SERVER | DROP ANY EVENT SESSION |
DATABASE | ENABLE LEDGER | EL | SERVER | CONTROL |
DATABASE | EXECUTE | EX | SERVER | CONTROL SERVER |
DATABASE | EXECUTE ANY EXTERNAL ENDPOINT | EAEE | SERVER | CONTROL SERVER |
DATABASE | EXECUTE ANY EXTERNAL SCRIPT | EAES Si applica a SQL Server (da SQL Server 2016 (13.x) fino alla versione corrente). |
SERVER | CONTROL SERVER |
DATABASE | INSERT … | IN | SERVER | CONTROL SERVER |
DATABASE | KILL DATABASE CONNECTION | KIDC Si applica solo al Database SQL di Azure. Usare ALTER ANY CONNECTION in SQL Server. |
SERVER | ALTER ANY CONNECTION |
DATABASE | REFERENCES | RF | SERVER | CONTROL SERVER |
DATABASE | SELECT | SL | SERVER | CONTROL SERVER |
DATABASE | SHOWPLAN | SPLN | SERVER | ALTER TRACE |
DATABASE | SUBSCRIBE QUERY NOTIFICATIONS | SUQN | SERVER | CONTROL SERVER |
DATABASE | TAKE OWNERSHIP | TO | SERVER | CONTROL SERVER |
DATABASE | UNMASK | UMSK Si applica a SQL Server (da SQL Server 2016 (13.x) fino alla versione corrente), Database SQL di Azure. |
SERVER | CONTROL SERVER |
DATABASE | UPDATE | UP | SERVER | CONTROL SERVER |
DATABASE | VIEW ANY COLUMN ENCRYPTION KEY DEFINITION | VWCK Si applica a SQL Server (da SQL Server 2016 (13.x) fino alla versione corrente), Database SQL di Azure. |
SERVER | VIEW SERVER STATE |
DATABASE | VIEW ANY COLUMN MASTER KEY DEFINITION | VWCM Si applica a SQL Server (da SQL Server 2016 (13.x) fino alla versione corrente), Database SQL di Azure. |
SERVER | VIEW SERVER STATE |
DATABASE | VIEW ANY SENSITIVITY CLASSIFICATION | VASC | SERVER | CONTROL SERVER |
DATABASE | VIEW CRYPTOGRAPHICALLY SECURED DEFINITION | VCD | SERVER | VIEW ANY CRYPTOGRAPHICALLY SECURED DEFINITION |
DATABASE | VIEW DATABASE PERFORMANCE STATE | VDP | SERVER | VIEW SERVER PERFORMANCE STATE |
DATABASE | VIEW DATABASE SECURITY AUDIT | VDSA | SERVER | CONTROL SERVER |
DATABASE | VIEW DATABASE SECURITY STATE | VDS | SERVER | VIEW SERVER SECURITY STATE |
DATABASE | VIEW DATABASE STATE | VWDS | SERVER | VIEW SERVER STATE |
DATABASE | VIEW DEFINITION | VW | SERVER | VIEW ANY DEFINITION |
DATABASE | VIEW LEDGER CONTENT | VLC | SERVER | CONTROL |
DATABASE | VIEW SECURITY DEFINITION | VWS | SERVER | VIEW ANY SECURITY DEFINITION |
DATABASE | VIEW PERFORMANCE DEFINITION | VWP | SERVER | VIEW ANY PERFORMANCE DEFINITION |
DATABASE SCOPED CREDENTIAL | ALTER | AL | DATABASE | CONTROL |
DATABASE SCOPED CREDENTIAL | CONTROL | CL | DATABASE | CONTROL |
DATABASE SCOPED CREDENTIAL | REFERENCES | RF | DATABASE | REFERENCES |
DATABASE SCOPED CREDENTIAL | TAKE OWNERSHIP | TO | DATABASE | CONTROL |
DATABASE SCOPED CREDENTIAL | VIEW DEFINITION | VW | DATABASE | VIEW DEFINITION |
ENDPOINT | ALTER | AL | SERVER | ALTER ANY ENDPOINT |
ENDPOINT | CONNECT | CO | SERVER | CONTROL SERVER |
ENDPOINT | CONTROL | CL | SERVER | CONTROL SERVER |
ENDPOINT | TAKE OWNERSHIP | TO | SERVER | CONTROL SERVER |
ENDPOINT | VIEW DEFINITION | VW | SERVER | VIEW ANY DEFINITION |
FULLTEXT CATALOG | ALTER | AL | DATABASE | ALTER ANY FULLTEXT CATALOG |
FULLTEXT CATALOG | CONTROL | CL | DATABASE | CONTROL |
FULLTEXT CATALOG | REFERENCES | RF | DATABASE | REFERENCES |
FULLTEXT CATALOG | TAKE OWNERSHIP | TO | DATABASE | CONTROL |
FULLTEXT CATALOG | VIEW DEFINITION | VW | DATABASE | VIEW DEFINITION |
FULLTEXT STOPLIST | ALTER | AL | DATABASE | ALTER ANY FULLTEXT CATALOG |
FULLTEXT STOPLIST | CONTROL | CL | DATABASE | CONTROL |
FULLTEXT STOPLIST | REFERENCES | RF | DATABASE | REFERENCES |
FULLTEXT STOPLIST | TAKE OWNERSHIP | TO | DATABASE | CONTROL |
FULLTEXT STOPLIST | VIEW DEFINITION | VW | DATABASE | VIEW DEFINITION |
LOGIN | ALTER | AL | SERVER | ALTER ANY LOGIN |
LOGIN | CONTROL | CL | SERVER | CONTROL SERVER |
LOGIN | IMPERSONATE | IM | SERVER | CONTROL SERVER |
LOGIN | VIEW DEFINITION | VW | SERVER | VIEW ANY DEFINITION |
MESSAGE TYPE | ALTER | AL | DATABASE | ALTER ANY MESSAGE TYPE |
MESSAGE TYPE | CONTROL | CL | DATABASE | CONTROL |
MESSAGE TYPE | REFERENCES | RF | DATABASE | REFERENCES |
MESSAGE TYPE | TAKE OWNERSHIP | TO | DATABASE | CONTROL |
MESSAGE TYPE | VIEW DEFINITION | VW | DATABASE | VIEW DEFINITION |
OBJECT | ALTER | AL | SCHEMA | ALTER |
OBJECT | CONTROL | CL | SCHEMA | CONTROL |
OBJECT | DELETE | DL | SCHEMA | DELETE |
OBJECT | EXECUTE | EX | SCHEMA | EXECUTE |
OBJECT | INSERT … | IN | SCHEMA | INSERT … |
OBJECT | AREARICEV | Gestione ruolo | SCHEMA | CONTROL |
OBJECT | REFERENCES | RF | SCHEMA | REFERENCES |
OBJECT | SELECT | SL | SCHEMA | SELECT |
OBJECT | TAKE OWNERSHIP | TO | SCHEMA | CONTROL |
OBJECT | UNMASK | UMSK | SCHEMA | UNMASK |
OBJECT | UPDATE | UP | SCHEMA | UPDATE |
OBJECT | VIEW CHANGE TRACKING | VWCT | SCHEMA | VIEW CHANGE TRACKING |
OBJECT | VIEW DEFINITION | VW | SCHEMA | VIEW DEFINITION |
REMOTE SERVICE BINDING | ALTER | AL | DATABASE | ALTER ANY REMOTE SERVICE BINDING |
REMOTE SERVICE BINDING | CONTROL | CL | DATABASE | CONTROL |
REMOTE SERVICE BINDING | TAKE OWNERSHIP | TO | DATABASE | CONTROL |
REMOTE SERVICE BINDING | VIEW DEFINITION | VW | DATABASE | VIEW DEFINITION |
ROLE | ALTER | AL | DATABASE | ALTER ANY ROLE |
ROLE | CONTROL | CL | DATABASE | CONTROL |
ROLE | TAKE OWNERSHIP | TO | DATABASE | CONTROL |
ROLE | VIEW DEFINITION | VW | DATABASE | VIEW DEFINITION |
ROUTE | ALTER | AL | DATABASE | ALTER ANY ROUTE |
ROUTE | CONTROL | CL | DATABASE | CONTROL |
ROUTE | TAKE OWNERSHIP | TO | DATABASE | CONTROL |
ROUTE | VIEW DEFINITION | VW | DATABASE | VIEW DEFINITION |
SCHEMA | ALTER | AL | DATABASE | ALTER ANY SCHEMA |
SCHEMA | CONTROL | CL | DATABASE | CONTROL |
SCHEMA | CREATE SEQUENCE | CRSO | DATABASE | CONTROL |
SCHEMA | DELETE | DL | DATABASE | DELETE |
SCHEMA | EXECUTE | EX | DATABASE | EXECUTE |
SCHEMA | INSERT … | IN | DATABASE | INSERT … |
SCHEMA | REFERENCES | RF | DATABASE | REFERENCES |
SCHEMA | SELECT | SL | DATABASE | SELECT |
SCHEMA | TAKE OWNERSHIP | TO | DATABASE | CONTROL |
SCHEMA | UNMASK | UMSK | DATABASE | UNMASK |
SCHEMA | UPDATE | UP | DATABASE | UPDATE |
SCHEMA | VIEW CHANGE TRACKING | VWCT | DATABASE | VIEW CHANGE TRACKING |
SCHEMA | VIEW DEFINITION | VW | DATABASE | VIEW DEFINITION |
SEARCH PROPERTY LIST | ALTER | AL | SERVER | ALTER ANY FULLTEXT CATALOG |
SEARCH PROPERTY LIST | CONTROL | CL | SERVER | CONTROL |
SEARCH PROPERTY LIST | REFERENCES | RF | SERVER | REFERENCES |
SEARCH PROPERTY LIST | TAKE OWNERSHIP | TO | SERVER | CONTROL |
SEARCH PROPERTY LIST | VIEW DEFINITION | VW | SERVER | VIEW DEFINITION |
SERVER | ADMINISTER BULK OPERATIONS | ADBO | Non applicabile | Non applicabile |
SERVER | ALTER ANY AVAILABILITY GROUP | ALAG | Non applicabile | Non applicabile |
SERVER | ALTER ANY CONNECTION | ALCO | Non applicabile | Non applicabile |
SERVER | ALTER ANY CREDENTIAL | ALCD | Non applicabile | Non applicabile |
SERVER | ALTER ANY DATABASE | ALDB | Non applicabile | Non applicabile |
SERVER | ALTER ANY ENDPOINT | ALHE | Non applicabile | Non applicabile |
SERVER | ALTER ANY EVENT NOTIFICATION | ALES | Non applicabile | Non applicabile |
SERVER | ALTER ANY EVENT SESSION | AAES | Non applicabile | Non applicabile |
SERVER | ALTER ANY EVENT SESSION ADD EVENT | LSAE | Non applicabile | Non applicabile |
SERVER | ALTER ANY EVENT SESSION ADD TARGET | LSAT | Non applicabile | Non applicabile |
SERVER | ALTER ANY EVENT SESSION DISABLE | DES | Non applicabile | Non applicabile |
SERVER | ALTER ANY EVENT SESSION DROP EVENT | LSDE | Non applicabile | Non applicabile |
SERVER | ALTER ANY EVENT SESSION DROP TARGET | LSDT | Non applicabile | Non applicabile |
SERVER | ALTER ANY EVENT SESSION ENABLE | EES | Non applicabile | Non applicabile |
SERVER | ALTER ANY EVENT SESSION OPTION | LESO | Non applicabile | Non applicabile |
SERVER | ALTER ANY LINKED SERVER | ALLS | Non applicabile | Non applicabile |
SERVER | ALTER ANY LOGIN | ALLG | Non applicabile | Non applicabile |
SERVER | ALTER ANY SERVER AUDIT | ALAA | Non applicabile | Non applicabile |
SERVER | ALTER ANY SERVER ROLE | ALSR | Non applicabile | Non applicabile |
SERVER | ALTER RESOURCES | ALRS | Non applicabile | Non applicabile |
SERVER | ALTER SERVER STATE | ALSS | Non applicabile | Non applicabile |
SERVER | ALTER SETTINGS | ALST | Non applicabile | Non applicabile |
SERVER | ALTER TRACE | ALTR | Non applicabile | Non applicabile |
SERVER | AUTHENTICATE SERVER | AUTH | Non applicabile | Non applicabile |
SERVER | CONNECT ANY DATABASE | CADB | Non applicabile | Non applicabile |
SERVER | CONNECT SQL | COSQ | Non applicabile | Non applicabile |
SERVER | CONTROL SERVER | CL | Non applicabile | Non applicabile |
SERVER | CREATE ANY DATABASE | CRDB | Non applicabile | Non applicabile |
SERVER | CREATE AVAILABILITY GROUP | CRAC | Non applicabile | Non applicabile |
SERVER | CREATE DDL EVENT NOTIFICATION | CRDE | Non applicabile | Non applicabile |
SERVER | CREATE ENDPOINT | CRHE | Non applicabile | Non applicabile |
SERVER | CREATE SERVER ROLE | CRSR | Non applicabile | Non applicabile |
SERVER | CREATE TRACE EVENT NOTIFICATION | CRTE | Non applicabile | Non applicabile |
SERVER | EXTERNAL ACCESS ASSEMBLY | XA | Non applicabile | Non applicabile |
SERVER | IMPERSONATE ANY LOGIN | IAL | Non applicabile | Non applicabile |
SERVER | SELECT ALL USER SECURABLES | SUS | Non applicabile | Non applicabile |
SERVER | SHUTDOWN | SHDN | Non applicabile | Non applicabile |
SERVER | UNSAFE ASSEMBLY | XU | Non applicabile | Non applicabile |
SERVER | VIEW ANY DATABASE | VWDB | Non applicabile | Non applicabile |
SERVER | VIEW ANY DEFINITION | VWAD | Non applicabile | Non applicabile |
SERVER | VIEW SERVER STATE | VWSS | Non applicabile | Non applicabile |
SERVER ROLE | ALTER | AL | SERVER | ALTER ANY SERVER ROLE |
SERVER ROLE | CONTROL | CL | SERVER | CONTROL SERVER |
SERVER ROLE | TAKE OWNERSHIP | TO | SERVER | CONTROL SERVER |
SERVER ROLE | VIEW DEFINITION | VW | SERVER | VIEW ANY DEFINITION |
SERVICE | ALTER | AL | DATABASE | ALTER ANY SERVICE |
SERVICE | CONTROL | CL | DATABASE | CONTROL |
SERVICE | SEND | SN | DATABASE | CONTROL |
SERVICE | TAKE OWNERSHIP | TO | DATABASE | CONTROL |
SERVICE | VIEW DEFINITION | VW | DATABASE | VIEW DEFINITION |
SYMMETRIC KEY | ALTER | AL | DATABASE | ALTER ANY SYMMETRIC KEY |
SYMMETRIC KEY | CONTROL | CL | DATABASE | CONTROL |
SYMMETRIC KEY | REFERENCES | RF | DATABASE | REFERENCES |
SYMMETRIC KEY | TAKE OWNERSHIP | TO | DATABASE | CONTROL |
SYMMETRIC KEY | VIEW DEFINITION | VW | DATABASE | VIEW DEFINITION |
TIPO | CONTROL | CL | SCHEMA | CONTROL |
TIPO | EXECUTE | EX | SCHEMA | EXECUTE |
TIPO | REFERENCES | RF | SCHEMA | REFERENCES |
TIPO | TAKE OWNERSHIP | TO | SCHEMA | CONTROL |
TIPO | VIEW DEFINITION | VW | SCHEMA | VIEW DEFINITION |
USER | ALTER | AL | DATABASE | ALTER ANY USER |
USER | CONTROL | CL | DATABASE | CONTROL |
USER | IMPERSONATE | IM | DATABASE | CONTROL |
USER | VIEW DEFINITION | VW | DATABASE | VIEW DEFINITION |
XML SCHEMA COLLECTION | ALTER | AL | SCHEMA | ALTER |
XML SCHEMA COLLECTION | CONTROL | CL | SCHEMA | CONTROL |
XML SCHEMA COLLECTION | EXECUTE | EX | SCHEMA | EXECUTE |
XML SCHEMA COLLECTION | REFERENCES | RF | SCHEMA | REFERENCES |
XML SCHEMA COLLECTION | TAKE OWNERSHIP | TO | SCHEMA | CONTROL |
XML SCHEMA COLLECTION | VIEW DEFINITION | VW | SCHEMA | VIEW DEFINITION |
Nuove autorizzazioni granulari aggiunte a SQL Server 2022
A SQL Server 2022 sono aggiunte le autorizzazioni seguenti:
Sono state aggiunte 10 nuove autorizzazioni per consentire l'accesso ai metadati di sistema.
Sono state aggiunte 18 nuove autorizzazioni per gli eventi estesi.
Sono state aggiunte 9 nuove autorizzazioni in relazione agli oggetti correlati alla sicurezza.
Sono state aggiunte 4 autorizzazioni per Ledger.
3 autorizzazioni aggiuntive per il database.
Per altre informazioni, vedere Nuove autorizzazioni granulari per SQL Server 2022 e Azure SQL per migliorare l'aderenza a PoLP.
Autorizzazioni per l’accesso ai metadati di sistema
Livello server:
- VIEW ANY SECURITY DEFINITION
- VIEW ANY PERFORMANCE DEFINITION
- VIEW SERVER SECURITY STATE
- VIEW SERVER PERFORMANCE STATE
- VIEW ANY CRYPTOGRAPHICALLY SECURED DEFINITION
Livello database:
- VIEW DATABASE SECURITY STATE
- VIEW DATABASE PERFORMANCE STATE
- VIEW SECURITY DEFINITION
- VIEW PERFORMANCE DEFINITION
- VIEW CRYPTOGRAPHICALLY SECURED DEFINITION
Autorizzazioni di eventi estesi
Livello server:
- CREATE ANY EVENT SESSION
- DROP ANY EVENT SESSION
- ALTER ANY EVENT SESSION OPTION
- ALTER ANY EVENT SESSION ADD EVENT
- ALTER ANY EVENT SESSION DROP EVENT
- ALTER ANY EVENT SESSION ENABLE
- ALTER ANY EVENT SESSION DISABLE
- ALTER ANY EVENT SESSION ADD TARGET
- ALTER ANY EVENT SESSION DROP TARGET
Tutte queste autorizzazioni si trovano nella stessa autorizzazione padre: ALTER ANY EVENT SESSION
Livello database:
- CREATE ANY DATABASE EVENT SESSION
- DROP ANY DATABASE EVENT SESSION
- ALTER ANY DATABASE EVENT SESSION OPTION
- ALTER ANY DATABASE EVENT SESSION ADD EVENT
- ALTER ANY DATABASE EVENT SESSION DROP EVENT
- ALTER ANY DATABASE EVENT SESSION ENABLE
- ALTER ANY DATABASE EVENT SESSION DISABLE
- ALTER ANY DATABASE EVENT SESSION ADD TARGET
- ALTER ANY DATABASE EVENT SESSION DROP TARGET
Tutte queste autorizzazioni si trovano nella stessa autorizzazione padre: ALTER ANY DATABASE EVENT SESSION
Autorizzazioni di oggetti correlati alla sicurezza
- CONTROL (CREDENTIAL)
- CREATE LOGIN
- CREATE USER
- REFERENCES (CREDENTIAL)
- UNMASK (OBJECT)
- UNMASK (SCHEMA)
- VIEW ANY ERROR LOG
- VIEW SERVER SECURITY AUDIT
- VIEW DATABASE SECURITY AUDIT
Autorizzazioni Ledger
- ALTER LEDGER
- ALTER LEDGER CONFIGURATION
- ENABLE LEDGER
- VIEW LEDGER CONTENT
Altre autorizzazioni del database
- ALTER ANY EXTERNAL JOB
- ALTER ANY EXTERNAL STREAM
- EXECUTE ANY EXTERNAL ENDPOINT
Riepilogo dell'algoritmo di controllo delle autorizzazioni
Il controllo delle autorizzazioni può essere complesso. L'algoritmo di controllo delle autorizzazioni include le appartenenze a gruppi sovrapposti e il concatenamento di proprietà, nonché autorizzazioni esplicite e implicite. È inoltre possibile che le autorizzazioni per le classi di entità a protezione diretta contenenti l'entità a protezione diretta abbiano impatto su tale algoritmo. Il processo generale dell'algoritmo consiste nel raccogliere tutte le autorizzazioni rilevanti. Se non viene individuato alcun blocco DENY, l'algoritmo cerca un'istruzione GRANT che fornisce accesso sufficiente. L'algoritmo contiene tre elementi fondamentali, ovvero il contesto di sicurezza, lo spazio di autorizzazionee l' autorizzazione necessaria.
Nota
Non è possibile concedere, negare o revocare autorizzazioni a sa, dbo, proprietari di entità, information_schema, sys o all'utente corrente.
Contesto di sicurezza
Gruppo di entità che fornisce le autorizzazioni per il controllo dell'accesso. Tali autorizzazioni sono correlate all'utente o all'account di accesso corrente, a meno che l'utente o l'account di accesso del contesto di sicurezza non sia stato modificato tramite l'istruzione EXECUTE AS. Il contesto di sicurezza include le seguenti entità:
Account di accesso
Utente
Appartenenze a ruoli
Appartenenze a gruppi di Windows
Se si usano la firma del modulo, qualsiasi account utente o di accesso tiene conto del certificato usato per firmare il modulo attualmente eseguito dall'utente e delle appartenenze a ruoli associate di tale entità.
Spazio di autorizzazione
L'entità a protezione diretta e qualsiasi classe di entità a protezione diretta in cui è contenuta. Ad esempio, una tabella (entità a protezione diretta) è contenuta nella classe di entità a protezione diretta dello schema e nella classe di entità a protezione diretta del database. Sull'accesso possono influire le autorizzazioni a livello di tabella, schema, database e server. Per altre informazioni, vedere Gerarchia delle autorizzazioni (motore di database).
Autorizzazione necessaria
Il tipo di autorizzazione richiesto. Ad esempio, INSERT, UPDATE, DELETE SELECT, EXECUTE ALTER, CONTROL e così via.
L'accesso può richiedere più autorizzazioni, come negli esempi seguenti:
Una stored procedure può richiedere sia l'autorizzazione EXECUTE per la stored procedure, sia l'autorizzazione INSERT per varie tabelle a cui la stored procedure fa riferimento.
Una vista a gestione dinamica può richiedere entrambe le autorizzazioni VIEW SERVER STATE e SELECT per la vista.
Passaggi generali dell'algoritmo
I passaggi precisi usati dall'algoritmo per determinare se consentire l'accesso a un'entità a protezione diretta possono variare in base alle entità e alle entità a protezione diretta coinvolte. L'algoritmo, tuttavia, effettua i passaggi generali indicati di seguito:
Ignora il controllo delle autorizzazioni se l'account di accesso è un membro del ruolo predefinito del server sysadmin o se l'utente è l'utente dbo nel database corrente.
Consente l'accesso se il concatenamento della proprietà è applicabile e il controllo dell'accesso sul primo oggetto nella catena ha superato il controllo della sicurezza.
Aggrega le identità del modulo firmato a livello di database e a livello di server associate al chiamante per creare il contesto di scurezza.
Per il contesto di sicurezzaraccoglie tutte le autorizzazioni concesse o negate per lo spazio di autorizzazione. È possibile dichiarare l'autorizzazione in modo esplicito come GRANT, GRANT WITH GRANT o DENY oppure usare autorizzazioni GRANT o DENY implicite o effettive. L'autorizzazione CONTROL per uno schema implica ad esempio l'autorizzazione CONTROL per una tabella, così come l'autorizzazione CONTROL per una tabella implica l'autorizzazione SELECT. Se è stata pertanto concessa l'autorizzazione CONTROL per lo schema, viene concessa anche l'autorizzazione SELECT per la tabella. Se l'autorizzazione CONTROL è stata negata per la tabella, viene negata anche l'autorizzazione SELECT per la tabella.
Nota
Un'autorizzazione GRANT a livello di colonna esegue l'override di un'autorizzazione DENY a livello di oggetto. Per altre informazioni, vedere DENY autorizzazioni oggetto (Transact-SQL).
Identifica l' autorizzazione necessaria.
Restituisce un esito negativo per il controllo delle autorizzazioni se l' autorizzazione necessaria è negata in modo diretto o implicito per un'identità nel contesto di sicurezza degli oggetti nello spazio di autorizzazione.
Superamento del controllo dell’autorizzazione se l’autorizzazione richiesta non è stata negata e se l’autorizzazione richiesta contiene un'autorizzazione GRANT WITH GRANT concessa in modo diretto o implicito a una delle identità nel contesto di protezione per qualunque oggetto nello spazio di autorizzazione.
Considerazioni speciali per le autorizzazioni a livello di colonna
Le autorizzazioni a livello di colonna vengono concesse con la sintassi <table_name>(<column_name>). Ad esempio:
GRANT SELECT ON OBJECT::Customer(CustomerName) TO UserJoe;
Un'istruzione GRANT a livello di colonna esegue l'override di un'istruzione DENY a livello di tabella. Tuttavia, un'istruzione DENY successiva a livello di tabella rimuoverà l'istruzione GRANT a livello di colonna.
Esempi
Negli esempi inclusi in questa sezione viene illustrato come recuperare le informazioni sulle autorizzazioni.
R. Restituzione dell'elenco completo delle autorizzazioni concedibili
L'istruzione seguente restituisce tutte le autorizzazioni del motore di database tramite la funzione fn_builtin_permissions
. Per altre informazioni, vedere sys.fn_builtin_permissions (Transact-SQL).
SELECT * FROM fn_builtin_permissions(default);
GO
B. Restituzione delle autorizzazioni per una particolare classe di oggetti
Nell'esempio seguente viene usata la funzione fn_builtin_permissions
per visualizzare tutte le autorizzazioni disponibili per una categoria di entità a protezione diretta. Nell'esempio vengono restituite le autorizzazioni per gli assembly.
SELECT * FROM fn_builtin_permissions('assembly');
GO
C. Restituzione delle autorizzazioni concesse all'entità di sicurezza in esecuzione su un oggetto
Nell'esempio seguente viene usata la funzione fn_my_permissions
per restituire un elenco delle autorizzazioni valide assegnate all'entità chiamante per un'entità a protezione diretta specificata. Nell'esempio vengono restituite le autorizzazioni per un oggetto denominato Orders55
. Per altre informazioni, vedere sys.fn_my_permissions (Transact-SQL).
SELECT * FROM fn_my_permissions('Orders55', 'object');
GO
D. Restituzione delle autorizzazioni applicabili a un oggetto specificato
Nell'esempio seguente vengono restituite le autorizzazioni applicabili a un oggetto denominato Yttrium
. La funzione predefinita OBJECT_ID
viene usata per recuperare l'ID dell'oggetto Yttrium
.
SELECT * FROM sys.database_permissions
WHERE major_id = OBJECT_ID('Yttrium');
GO