Autorizzazioni (Motore di database)

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureAzure Synapse AnalyticsPiattaforma di analisi (PDW)Endpoint di analisi SQL in Microsoft FabricMagazzino in Microsoft FabricDatabase SQL in Microsoft Fabric

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 Introduzione alle autorizzazioni del motore di database.

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.

Nel database SQL in Microsoft Fabric sono supportati solo utenti e ruoli a livello di database. Gli account di accesso a livello di server, i ruoli e l'account sa non sono disponibili. Nel database SQL in Microsoft Fabric, l'ID Microsoft Entra per gli utenti del database è l'unico metodo di autenticazione supportato. Per altre informazioni, vedere Autorizzazione nel database SQL in Microsoft Fabric.

Dopo aver compreso le autorizzazioni necessarie, è possibile applicare le autorizzazioni a livello di server agli account di accesso o ai ruoli del server e le autorizzazioni a livello di database per gli utenti o i ruoli del database usando le GRANTistruzioni , REVOKEe DENY . Per 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. Ad esempio, ALTER ANY LOGIN conferisce la possibilità di creare, modificare o eliminare qualsiasi account di accesso nell'istanza di .

  • 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. Ad esempio, ALTER ANY SCHEMA conferisce la possibilità di creare, modificare o eliminare qualsiasi schema nel database.

  • PRENDITI LA PROPRIETÀ

    Consente al beneficiario di acquisire la proprietà dell'oggetto di protezione su cui è stata concessa.

  • 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 DEFINIZIONE

    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 per un oggetto per creare un FUNCTION oggetto o VIEW con la WITH SCHEMABINDING clausola che fa riferimento a tale oggetto.

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.

Screenshot del PDF delle autorizzazioni del motore di database.

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.

Permission Si applica a:
ALTER Tutte le classi di oggetti ad eccezione TYPEdi .
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 DATABASE SCOPED CONFIGURATIONdi , 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
RECEIVE 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
PRENDITI LA PROPRIETÀ Tutte le classi di oggetti, ad eccezione DATABASE SCOPED CONFIGURATIONdi , , LOGINSERVER e USER.
UPDATE Sinonimi, tabelle e colonne, viste e colonne. L'autorizzazione può essere concesso a livello di database, schema oppure oggetto
VIEW RILEVAMENTO MODIFICHE Schemi e tabelle
VIEW DEFINIZIONE Tutte le classi di oggetti ad eccezione DATABASE SCOPED CONFIGURATIONdi e SERVER.

Caution

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à di sicurezza 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 MODIFICA QUALSIASI APPLICATION ROLE
APPLICATION ROLE CONTROL CL DATABASE CONTROL
APPLICATION ROLE VIEW DEFINIZIONE VW DATABASE VIEW DEFINIZIONE
ASSEMBLY ALTER AL DATABASE MODIFICA QUALSIASI ASSEMBLY
ASSEMBLY CONTROL CL DATABASE CONTROL
ASSEMBLY REFERENCES RF DATABASE REFERENCES
ASSEMBLY PRENDITI LA PROPRIETÀ TO DATABASE CONTROL
ASSEMBLY VIEW DEFINIZIONE VW DATABASE VIEW DEFINIZIONE
ASYMMETRIC KEY ALTER AL DATABASE MODIFICA QUALSIASI ASYMMETRIC KEY
ASYMMETRIC KEY CONTROL CL DATABASE CONTROL
ASYMMETRIC KEY REFERENCES RF DATABASE REFERENCES
ASYMMETRIC KEY PRENDITI LA PROPRIETÀ TO DATABASE CONTROL
ASYMMETRIC KEY VIEW DEFINIZIONE VW DATABASE VIEW DEFINIZIONE
AVAILABILITY GROUP ALTER AL SERVER MODIFICA QUALSIASI AVAILABILITY GROUP
AVAILABILITY GROUP CONTROL CL SERVER SERVER DI CONTROLLO
AVAILABILITY GROUP PRENDITI LA PROPRIETÀ TO SERVER SERVER DI CONTROLLO
AVAILABILITY GROUP VIEW DEFINIZIONE VW SERVER VIEW ANY DEFINITION
CERTIFICATE ALTER AL DATABASE MODIFICA QUALSIASI CERTIFICATE
CERTIFICATE CONTROL CL DATABASE CONTROL
CERTIFICATE REFERENCES RF DATABASE REFERENCES
CERTIFICATE PRENDITI LA PROPRIETÀ TO DATABASE CONTROL
CERTIFICATE VIEW DEFINIZIONE VW DATABASE VIEW DEFINIZIONE
CONTRACT ALTER AL DATABASE MODIFICA QUALSIASI CONTRACT
CONTRACT CONTROL CL DATABASE CONTROL
CONTRACT REFERENCES RF DATABASE REFERENCES
CONTRACT PRENDITI LA PROPRIETÀ TO DATABASE CONTROL
CONTRACT VIEW DEFINIZIONE VW DATABASE VIEW DEFINIZIONE
CREDENTIAL CONTROL CL SERVER SERVER DI CONTROLLO
CREDENTIAL REFERENCES RF SERVER MODIFICA QUALSIASI CREDENTIAL
DATABASE AMMINISTRARE DATABASE LE OPERAZIONI BULK DABO SERVER SERVER DI CONTROLLO
DATABASE ALTER AL SERVER MODIFICA QUALSIASI DATABASE
DATABASE MODIFICA QUALSIASI APPLICATION ROLE ALAR SERVER SERVER DI CONTROLLO
DATABASE MODIFICA QUALSIASI ASSEMBLY ALAS SERVER SERVER DI CONTROLLO
DATABASE MODIFICA QUALSIASI ASYMMETRIC KEY ALAK SERVER SERVER DI CONTROLLO
DATABASE MODIFICA QUALSIASI CERTIFICATE ALCF SERVER SERVER DI CONTROLLO
DATABASE MODIFICA QUALSIASI COLUMN ENCRYPTION KEY ALCK

Si applica a SQL Server (da SQL Server 2016 (13.x) fino alla versione corrente), Database SQL di Azure.
SERVER SERVER DI CONTROLLO
DATABASE MODIFICA QUALSIASI COLUMN MASTER KEY ALCM

Si applica a SQL Server (da SQL Server 2016 (13.x) fino alla versione corrente), Database SQL di Azure.
SERVER SERVER DI CONTROLLO
DATABASE MODIFICA QUALSIASI CONTRACT ALSC SERVER SERVER DI CONTROLLO
DATABASE ALTER ANY DATABASE AUDIT ALDA SERVER MODIFICA QUALSIASI SERVER AUDIT
DATABASE ALTER ANY DATABASE DDL TRIGGER ALTG SERVER SERVER DI CONTROLLO
DATABASE ALTER ANY DATABASEEVENT NOTIFICATION ALED SERVER MODIFICA QUALSIASI EVENT NOTIFICATION
DATABASE ALTER ANY DATABASEEVENT SESSION AADS SERVER MODIFICA QUALSIASI EVENT SESSION
DATABASE ALTER ANY DATABASEEVENT SESSION ADD EVENT LDAE SERVER ALTER ANY EVENT SESSION ADD EVENT
DATABASE ALTER ANY DATABASEEVENT SESSION ADD TARGET LDAT SERVER ALTER ANY EVENT SESSION ADD TARGET
DATABASE ALTER ANY DATABASEEVENT SESSION DISABLE DDES SERVER ALTER ANY EVENT SESSION DISABLE
DATABASE ALTER ANY DATABASEEVENT SESSION DROP EVENT LDDE SERVER ALTER ANY EVENT SESSION DROP EVENT
DATABASE ALTER ANY DATABASEEVENT SESSION DROP TARGET LDDT SERVER ALTER ANY EVENT SESSION DROP TARGET
DATABASE ALTER ANY DATABASEEVENT SESSION ENABLE EDES SERVER ALTER ANY EVENT SESSION ENABLE
DATABASE ALTER ANY DATABASEEVENT SESSION OPTION LDSO SERVER ALTER ANY EVENT SESSION OPTION
DATABASE MODIFICA QUALSIASI DATABASE SCOPED CONFIGURATION ALDC

Si applica a SQL Server (da SQL Server 2016 (13.x) fino alla versione corrente), Database SQL di Azure.
SERVER SERVER DI CONTROLLO
DATABASE MODIFICARE QUALSIASI SPAZIO DATI ALDS SERVER SERVER DI CONTROLLO
DATABASE MODIFICA QUALSIASI EXTERNAL DATA SOURCE AEDS SERVER SERVER DI CONTROLLO
DATABASE MODIFICA QUALSIASI EXTERNAL FILE FORMAT AEFF SERVER SERVER DI CONTROLLO
DATABASE MODIFICARE QUALSIASI LAVORO ESTERNO AESJ SERVER SERVER DI CONTROLLO
DATABASE MODIFICA QUALSIASI EXTERNAL LANGUAGE ALLA SERVER SERVER DI CONTROLLO
DATABASE MODIFICA QUALSIASI EXTERNAL LIBRARY ALEL SERVER SERVER DI CONTROLLO
DATABASE ALTERARE QUALSIASI FLUSSO ESTERNO AEST SERVER SERVER DI CONTROLLO
DATABASE MODIFICA QUALSIASI FULLTEXT CATALOG ALFT SERVER SERVER DI CONTROLLO
DATABASE ALTERARE QUALSIASI MASCHERA AAMK

Si applica a SQL Server (da SQL Server 2016 (13.x) fino alla versione corrente), Database SQL di Azure.
SERVER SERVER DI CONTROLLO
DATABASE MODIFICA QUALSIASI MESSAGE TYPE ALMT SERVER SERVER DI CONTROLLO
DATABASE MODIFICA QUALSIASI REMOTE SERVICE BINDING ALSB SERVER SERVER DI CONTROLLO
DATABASE MODIFICA QUALSIASI ROLE ALRL SERVER SERVER DI CONTROLLO
DATABASE MODIFICA QUALSIASI ROUTE ALRT SERVER SERVER DI CONTROLLO
DATABASE MODIFICA QUALSIASI SCHEMA ALSM SERVER SERVER DI CONTROLLO
DATABASE MODIFICA QUALSIASI SECURITY POLICY ALSP

Si applica a SQL Server (da SQL Server 2016 (13.x) fino alla versione corrente), Database SQL di Azure.
SERVER SERVER DI CONTROLLO
DATABASE MODIFICA QUALSIASI SENSITIVITY CLASSIFICATION AASC
Si applica a SQL Server (da SQL Server 2019 (15.x) fino alla versione corrente), Database SQL di Azure.
SERVER SERVER DI CONTROLLO
DATABASE MODIFICA QUALSIASI SERVICE ALSV SERVER SERVER DI CONTROLLO
DATABASE MODIFICA QUALSIASI SYMMETRIC KEY ALSK SERVER SERVER DI CONTROLLO
DATABASE MODIFICA QUALSIASI USER ALUS SERVER SERVER DI CONTROLLO
DATABASE ALTER LEDGER ALR SERVER CONTROL
DATABASE MODIFICA CONFIGURAZIONE LIBRO MASTRO ALC SERVER SERVER DI CONTROLLO
DATABASE AUTHENTICATE AUTH SERVER Autenticare server
DATABASE BACKUP DATABASE BADB SERVER SERVER DI CONTROLLO
DATABASE BACKUP LOG BALO SERVER SERVER DI CONTROLLO
DATABASE CHECKPOINT CP SERVER SERVER DI CONTROLLO
DATABASE CONNECT CO SERVER SERVER DI CONTROLLO
DATABASE REPLICAZIONE DI CONNESSIONE CORP SERVER SERVER DI CONTROLLO
DATABASE CONTROL CL SERVER SERVER DI CONTROLLO
DATABASE CREATE AGGREGATE CRAG SERVER SERVER DI CONTROLLO
DATABASE CREATE ANY DATABASEEVENT SESSION CRDS SERVER CREATE ANY EVENT SESSION
DATABASE CREATE ASSEMBLY CRAS SERVER SERVER DI CONTROLLO
DATABASE CREATE ASYMMETRIC KEY CRAK SERVER SERVER DI CONTROLLO
DATABASE CREATE CERTIFICATE CRCF SERVER SERVER DI CONTROLLO
DATABASE CREATE CONTRACT CRSC SERVER SERVER DI CONTROLLO
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 SERVER DI CONTROLLO
DATABASE CREATE EXTERNAL LANGUAGE CRLA SERVER SERVER DI CONTROLLO
DATABASE CREATE EXTERNAL LIBRARY CREL SERVER SERVER DI CONTROLLO
DATABASE CREATE FULLTEXT CATALOG CRFT SERVER SERVER DI CONTROLLO
DATABASE CREATE FUNCTION CRFN SERVER SERVER DI CONTROLLO
DATABASE CREATE MESSAGE TYPE CRMT SERVER SERVER DI CONTROLLO
DATABASE CREATE PROCEDURE CRPR SERVER SERVER DI CONTROLLO
DATABASE CREATE QUEUE CRQU SERVER SERVER DI CONTROLLO
DATABASE CREATE REMOTE SERVICE BINDING CRSB SERVER SERVER DI CONTROLLO
DATABASE CREATE ROLE CRRL SERVER SERVER DI CONTROLLO
DATABASE CREATE ROUTE CRRT SERVER SERVER DI CONTROLLO
DATABASE CREATE RULE CRRU SERVER SERVER DI CONTROLLO
DATABASE CREATE SCHEMA CRSM SERVER SERVER DI CONTROLLO
DATABASE CREATE SERVICE CRSV SERVER SERVER DI CONTROLLO
DATABASE CREATE SYMMETRIC KEY CRSK SERVER SERVER DI CONTROLLO
DATABASE CREATE SYNONYM CRSN SERVER SERVER DI CONTROLLO
DATABASE CREATE TABLE CRTB SERVER SERVER DI CONTROLLO
DATABASE CREATE TYPE CRTY SERVER SERVER DI CONTROLLO
DATABASE CREATE USER CUSR SERVER SERVER DI CONTROLLO
DATABASE CREATE VIEW CRVW SERVER SERVER DI CONTROLLO
DATABASE CREATE XML SCHEMA COLLECTION CRXS SERVER SERVER DI CONTROLLO
DATABASE DELETE DL SERVER SERVER DI CONTROLLO
DATABASE DROP ANY DATABASEEVENT SESSION DRDS SERVER DROP ANY EVENT SESSION
DATABASE ENABLE LEDGER EL SERVER CONTROL
DATABASE EXECUTE EX SERVER SERVER DI CONTROLLO
DATABASE EXECUTE ANY EXTERNAL ENDPOINT EAEE SERVER SERVER DI CONTROLLO
DATABASE Eseguire qualsiasi script esterno EAES

Si applica a SQL Server (da SQL Server 2016 (13.x) fino alla versione corrente).
SERVER SERVER DI CONTROLLO
DATABASE INSERT IN SERVER SERVER DI CONTROLLO
DATABASE TERMINA DATABASE CONNESSIONE KIDC

Si applica solo al Database SQL di Azure. Usare ALTER ANY CONNECTION in SQL Server.
SERVER ALTERARE QUALSIASI CONNESSIONE
DATABASE REFERENCES RF SERVER SERVER DI CONTROLLO
DATABASE SELECT SL SERVER SERVER DI CONTROLLO
DATABASE SHOWPLAN SPLN SERVER MODIFICA TRACCIA
DATABASE SOTTOSCRIVERE LE NOTIFICHE DELLE QUERY SUQN SERVER SERVER DI CONTROLLO
DATABASE PRENDITI LA PROPRIETÀ TO SERVER SERVER DI CONTROLLO
DATABASE UNMASK UMSK

Si applica a SQL Server (da SQL Server 2016 (13.x) fino alla versione corrente), Database SQL di Azure.
SERVER SERVER DI CONTROLLO
DATABASE UPDATE UP SERVER SERVER DI CONTROLLO
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 STATO SERVER
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 STATO SERVER
DATABASE VIEW QUALSIASI SENSITIVITY CLASSIFICATION VASC SERVER SERVER DI CONTROLLO
DATABASE VIEW DEFINIZIONE PROTETTA IN MODO CRITTOGRAFICO VCD SERVER VIEW QUALSIASI DEFINIZIONE PROTETTA DAL PUNTO DI VISTA CRITTOGRAFICO
DATABASE VIEW DATABASE STATO PRESTAZIONI VDP SERVER VIEW STATO PRESTAZIONI SERVER
DATABASE VIEW DATABASE CONTROLLO DI SICUREZZA VDSA SERVER SERVER DI CONTROLLO
DATABASE VIEW DATABASE STATO DI SICUREZZA VDS SERVER VIEW STATO DI SICUREZZA DEL SERVER
DATABASE VIEW DATABASE STATO VWDS SERVER VIEW STATO SERVER
DATABASE VIEW DEFINIZIONE VW SERVER VIEW ANY DEFINITION
DATABASE VIEW CONTENUTO LIBRO MASTRO VLC SERVER CONTROL
DATABASE VIEW DEFINIZIONE DI SICUREZZA VWS SERVER VIEW QUALSIASI DEFINIZIONE DI SICUREZZA
DATABASE VIEW DEFINIZIONE DELLE PRESTAZIONI VWP SERVER VIEW QUALSIASI DEFINIZIONE DI PRESTAZIONI
DATABASE SCOPED CREDENTIAL ALTER AL DATABASE CONTROL
DATABASE SCOPED CREDENTIAL CONTROL CL DATABASE CONTROL
DATABASE SCOPED CREDENTIAL REFERENCES RF DATABASE REFERENCES
DATABASE SCOPED CREDENTIAL PRENDITI LA PROPRIETÀ TO DATABASE CONTROL
DATABASE SCOPED CREDENTIAL VIEW DEFINIZIONE VW DATABASE VIEW DEFINIZIONE
ENDPOINT ALTER AL SERVER MODIFICA QUALSIASI ENDPOINT
ENDPOINT CONNECT CO SERVER SERVER DI CONTROLLO
ENDPOINT CONTROL CL SERVER SERVER DI CONTROLLO
ENDPOINT PRENDITI LA PROPRIETÀ TO SERVER SERVER DI CONTROLLO
ENDPOINT VIEW DEFINIZIONE VW SERVER VIEW ANY DEFINITION
FULLTEXT CATALOG ALTER AL DATABASE MODIFICA QUALSIASI FULLTEXT CATALOG
FULLTEXT CATALOG CONTROL CL DATABASE CONTROL
FULLTEXT CATALOG REFERENCES RF DATABASE REFERENCES
FULLTEXT CATALOG PRENDITI LA PROPRIETÀ TO DATABASE CONTROL
FULLTEXT CATALOG VIEW DEFINIZIONE VW DATABASE VIEW DEFINIZIONE
FULLTEXT STOPLIST ALTER AL DATABASE MODIFICA QUALSIASI FULLTEXT CATALOG
FULLTEXT STOPLIST CONTROL CL DATABASE CONTROL
FULLTEXT STOPLIST REFERENCES RF DATABASE REFERENCES
FULLTEXT STOPLIST PRENDITI LA PROPRIETÀ TO DATABASE CONTROL
FULLTEXT STOPLIST VIEW DEFINIZIONE VW DATABASE VIEW DEFINIZIONE
LOGIN ALTER AL SERVER MODIFICA QUALSIASI LOGIN
LOGIN CONTROL CL SERVER SERVER DI CONTROLLO
LOGIN IMPERSONATE IM SERVER SERVER DI CONTROLLO
LOGIN VIEW DEFINIZIONE VW SERVER VIEW ANY DEFINITION
MESSAGE TYPE ALTER AL DATABASE MODIFICA QUALSIASI MESSAGE TYPE
MESSAGE TYPE CONTROL CL DATABASE CONTROL
MESSAGE TYPE REFERENCES RF DATABASE REFERENCES
MESSAGE TYPE PRENDITI LA PROPRIETÀ TO DATABASE CONTROL
MESSAGE TYPE VIEW DEFINIZIONE VW DATABASE VIEW DEFINIZIONE
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 RECEIVE RC SCHEMA CONTROL
OBJECT REFERENCES RF SCHEMA REFERENCES
OBJECT SELECT SL SCHEMA SELECT
OBJECT PRENDITI LA PROPRIETÀ TO SCHEMA CONTROL
OBJECT UNMASK UMSK SCHEMA UNMASK
OBJECT UPDATE UP SCHEMA UPDATE
OBJECT VIEW RILEVAMENTO MODIFICHE VWCT SCHEMA VIEW RILEVAMENTO MODIFICHE
OBJECT VIEW DEFINIZIONE VW SCHEMA VIEW DEFINIZIONE
REMOTE SERVICE BINDING ALTER AL DATABASE MODIFICA QUALSIASI REMOTE SERVICE BINDING
REMOTE SERVICE BINDING CONTROL CL DATABASE CONTROL
REMOTE SERVICE BINDING PRENDITI LA PROPRIETÀ TO DATABASE CONTROL
REMOTE SERVICE BINDING VIEW DEFINIZIONE VW DATABASE VIEW DEFINIZIONE
ROLE ALTER AL DATABASE MODIFICA QUALSIASI ROLE
ROLE CONTROL CL DATABASE CONTROL
ROLE PRENDITI LA PROPRIETÀ TO DATABASE CONTROL
ROLE VIEW DEFINIZIONE VW DATABASE VIEW DEFINIZIONE
ROUTE ALTER AL DATABASE MODIFICA QUALSIASI ROUTE
ROUTE CONTROL CL DATABASE CONTROL
ROUTE PRENDITI LA PROPRIETÀ TO DATABASE CONTROL
ROUTE VIEW DEFINIZIONE VW DATABASE VIEW DEFINIZIONE
SCHEMA ALTER AL DATABASE MODIFICA QUALSIASI 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 PRENDITI LA PROPRIETÀ TO DATABASE CONTROL
SCHEMA UNMASK UMSK DATABASE UNMASK
SCHEMA UPDATE UP DATABASE UPDATE
SCHEMA VIEW RILEVAMENTO MODIFICHE VWCT DATABASE VIEW RILEVAMENTO MODIFICHE
SCHEMA VIEW DEFINIZIONE VW DATABASE VIEW DEFINIZIONE
SEARCH PROPERTY LIST ALTER AL SERVER MODIFICA QUALSIASI FULLTEXT CATALOG
SEARCH PROPERTY LIST CONTROL CL SERVER CONTROL
SEARCH PROPERTY LIST REFERENCES RF SERVER REFERENCES
SEARCH PROPERTY LIST PRENDITI LA PROPRIETÀ TO SERVER CONTROL
SEARCH PROPERTY LIST VIEW DEFINIZIONE VW SERVER VIEW DEFINIZIONE
SERVER AMMINISTRARE LE OPERAZIONI MASSIVE ADBO Non applicabile Non applicabile
SERVER MODIFICA QUALSIASI AVAILABILITY GROUP ALAG Non applicabile Non applicabile
SERVER ALTERARE QUALSIASI CONNESSIONE ALCO Non applicabile Non applicabile
SERVER MODIFICA QUALSIASI CREDENTIAL ALCD Non applicabile Non applicabile
SERVER MODIFICA QUALSIASI DATABASE ALDB Non applicabile Non applicabile
SERVER MODIFICA QUALSIASI ENDPOINT ALHE Non applicabile Non applicabile
SERVER MODIFICA QUALSIASI EVENT NOTIFICATION ALES Non applicabile Non applicabile
SERVER MODIFICA QUALSIASI 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 MODIFICARE QUALSIASI SERVER COLLEGATO ALLS Non applicabile Non applicabile
SERVER MODIFICA QUALSIASI LOGIN ALLG Non applicabile Non applicabile
SERVER MODIFICA QUALSIASI SERVER AUDIT ALAA Non applicabile Non applicabile
SERVER MODIFICA QUALSIASI SERVER ROLE ALSR Non applicabile Non applicabile
SERVER ALTER RESOURCES ALRS Non applicabile Non applicabile
SERVER MODIFICA STATO DEL SERVER ALSS Non applicabile Non applicabile
SERVER MODIFICARE IMPOSTAZIONI ALST Non applicabile Non applicabile
SERVER MODIFICA TRACCIA ALTR Non applicabile Non applicabile
SERVER Autenticare server AUTH Non applicabile Non applicabile
SERVER CONNECT ANY DATABASE CADB Non applicabile Non applicabile
SERVER CONNECT SQL COSQ Non applicabile Non applicabile
SERVER SERVER DI CONTROLLO 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 ACCESSO ESTERNO ASSEMBLY XA Non applicabile Non applicabile
SERVER IMPERSONATE ANY LOGIN IAL Non applicabile Non applicabile
SERVER SELEZIONARE TUTTE LE USER ENTITÀ A PROTEZIONE DIRETTA SUS Non applicabile Non applicabile
SERVER SHUTDOWN SHDN Non applicabile Non applicabile
SERVER PERICOLOSO ASSEMBLY XU Non applicabile Non applicabile
SERVER VIEW QUALSIASI DATABASE VWDB Non applicabile Non applicabile
SERVER VIEW ANY DEFINITION VWAD Non applicabile Non applicabile
SERVER VIEW STATO SERVER VWSS Non applicabile Non applicabile
SERVER ROLE ALTER AL SERVER MODIFICA QUALSIASI SERVER ROLE
SERVER ROLE CONTROL CL SERVER SERVER DI CONTROLLO
SERVER ROLE PRENDITI LA PROPRIETÀ TO SERVER SERVER DI CONTROLLO
SERVER ROLE VIEW DEFINIZIONE VW SERVER VIEW ANY DEFINITION
SERVICE ALTER AL DATABASE MODIFICA QUALSIASI SERVICE
SERVICE CONTROL CL DATABASE CONTROL
SERVICE SEND SN DATABASE CONTROL
SERVICE PRENDITI LA PROPRIETÀ TO DATABASE CONTROL
SERVICE VIEW DEFINIZIONE VW DATABASE VIEW DEFINIZIONE
SYMMETRIC KEY ALTER AL DATABASE MODIFICA QUALSIASI SYMMETRIC KEY
SYMMETRIC KEY CONTROL CL DATABASE CONTROL
SYMMETRIC KEY REFERENCES RF DATABASE REFERENCES
SYMMETRIC KEY PRENDITI LA PROPRIETÀ TO DATABASE CONTROL
SYMMETRIC KEY VIEW DEFINIZIONE VW DATABASE VIEW DEFINIZIONE
TYPE CONTROL CL SCHEMA CONTROL
TYPE EXECUTE EX SCHEMA EXECUTE
TYPE REFERENCES RF SCHEMA REFERENCES
TYPE PRENDITI LA PROPRIETÀ TO SCHEMA CONTROL
TYPE VIEW DEFINIZIONE VW SCHEMA VIEW DEFINIZIONE
USER ALTER AL DATABASE MODIFICA QUALSIASI USER
USER CONTROL CL DATABASE CONTROL
USER IMPERSONATE IM DATABASE CONTROL
USER VIEW DEFINIZIONE VW DATABASE VIEW DEFINIZIONE
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 PRENDITI LA PROPRIETÀ TO SCHEMA CONTROL
XML SCHEMA COLLECTION VIEW DEFINIZIONE VW SCHEMA VIEW DEFINIZIONE

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 QUALSIASI DEFINIZIONE DI SICUREZZA
  • VIEW QUALSIASI DEFINIZIONE DI PRESTAZIONI
  • VIEW STATO DI SICUREZZA DEL SERVER
  • VIEW STATO PRESTAZIONI SERVER
  • VIEW QUALSIASI DEFINIZIONE PROTETTA DAL PUNTO DI VISTA CRITTOGRAFICO

Livello di database:

  • VIEW DATABASE STATO DI SICUREZZA
  • VIEW DATABASE STATO PRESTAZIONI
  • VIEW DEFINIZIONE DI SICUREZZA
  • VIEW DEFINIZIONE DELLE PRESTAZIONI
  • VIEW DEFINIZIONE PROTETTA IN MODO CRITTOGRAFICO

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 di database:

  • CREATE ANY DATABASEEVENT SESSION
  • DROP ANY DATABASEEVENT SESSION
  • ALTER ANY DATABASEEVENT SESSION OPTION
  • ALTER ANY DATABASEEVENT SESSION ADD EVENT
  • ALTER ANY DATABASEEVENT SESSION DROP EVENT
  • ALTER ANY DATABASEEVENT SESSION ENABLE
  • ALTER ANY DATABASEEVENT SESSION DISABLE
  • ALTER ANY DATABASEEVENT SESSION ADD TARGET
  • ALTER ANY DATABASEEVENT SESSION DROP TARGET

Tutte queste autorizzazioni si trovano nella stessa autorizzazione padre: ALTER ANY DATABASEEVENT SESSION

  • CONTROL (CREDENTIAL)
  • CREATE LOGIN
  • CREATE USER
  • RIFERIMENTI (CREDENTIAL)
  • UNMASK (OBJECT)
  • UNMASK (SCHEMA)
  • VIEW QUALSIASI LOG DEGLI ERRORI
  • VIEW CONTROLLO SICUREZZA SERVER
  • VIEW DATABASE CONTROLLO DI SICUREZZA

Permessi del ledger

  • ALTER LEDGER
  • MODIFICA CONFIGURAZIONE LIBRO MASTRO
  • ENABLE LEDGER
  • VIEW CONTENUTO LIBRO MASTRO

Altre autorizzazioni del database

  • MODIFICARE QUALSIASI LAVORO ESTERNO
  • ALTERARE QUALSIASI FLUSSO ESTERNO
  • 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 trovato alcun blocco DENY , l'algoritmo cerca un GRANT oggetto che fornisce un accesso sufficiente. L'algoritmo contiene tre elementi fondamentali, ovvero il contesto di sicurezza, lo spazio di autorizzazionee l' autorizzazione necessaria.

Note

Non è possibile concedere, negare o revocare le autorizzazioni a sa, dbo, il proprietario dell'entità, information_schema, syso manualmente.

  • Contesto di sicurezza

    Gruppo di entità che fornisce le autorizzazioni per il controllo dell'accesso. Si tratta di autorizzazioni correlate all'account di accesso o all'utente corrente, a meno che il contesto di sicurezza non sia stato modificato in un altro account di accesso o utente usando l'istruzione EXECUTE AS . Il contesto di sicurezza include le seguenti entità:

    • Account di accesso

    • L'utente

    • Appartenenze ai 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 autorizzazioni

    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 richiesta

    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 che INSERT l'autorizzazione per diverse tabelle a cui fa riferimento la stored procedure.

    • Una visualizzazione a gestione dinamica può richiedere sia l'autorizzazione SERVER STATE che VIEW SELECT per la visualizzazione.

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:

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

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

  3. Aggrega le identità del modulo firmato a livello di database e a livello di server associate al chiamante per creare il contesto di scurezza.

  4. Per il contesto di sicurezzaraccoglie tutte le autorizzazioni concesse o negate per lo spazio di autorizzazione. L'autorizzazione può essere dichiarata in modo esplicito come , WITH o DENYoppure le autorizzazioni possono essere un'autorizzazione GRANT implicita o di copertura o DENY.GRANTGRANTGRANT 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.

    Note

    Un GRANT oggetto di un'autorizzazione a livello di colonna esegue l'override di un DENY oggetto a livello di oggetto. Per altre informazioni, vedere DENY Autorizzazioni per gli oggetti.

  5. Identifica l' autorizzazione necessaria.

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

  7. Passare il controllo dell'autorizzazione se l'autorizzazione richiesta non è stata negata e l'autorizzazione richiesta contiene un'autorizzazione GRANT WITH GRANT direttamente GRANT o implicitamente a una delle identità nel contesto di sicurezza per qualsiasi 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>). Per esempio:

GRANT SELECT ON OBJECT::Customer(CustomerName) TO UserJoe;

Un DENY oggetto nella tabella viene sottoposto a override da un oggetto GRANT in una colonna. Tuttavia, un successivo DENY nella tabella rimuoverà la colonna GRANT.

Examples

Negli esempi inclusi in questa sezione viene illustrato come recuperare le informazioni sulle autorizzazioni.

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

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.

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