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
Istanza gestita di SQL di Azure
Piattaforma di strumenti analitici (PDW)
SQL Server fornisce ruoli a livello di server per semplificare la gestione delle autorizzazioni in un server. Questi ruoli sono entità di sicurezza che raggruppano altre entità. L'ambito delle autorizzazioni dei ruoli a livello di server è l'intero server. Iruoli equivalgono ai gruppi nel sistema operativo Windows.
SQL Server 2019 (15.x) e le versioni precedenti hanno fornito nove ruoli predefiniti del server. Le autorizzazioni concesse ai ruoli predefiniti del server (ad eccezione di pubblico) non possono essere modificate. A partire da SQL Server 2012 (11.x), è possibile creare ruoli del server definiti dall'utente e aggiungere autorizzazioni a livello di server a tali ruoli.
SQL Server 2022 (16.x) include 10 ruoli aggiuntivi del server progettati specificamente con il principio dei privilegi minimi , che hanno il prefisso ##MS_ e il suffisso ## per distinguerli dagli altri ruoli server personalizzati e creati dall'utente normali. Questi nuovi ruoli contengono privilegi che si applicano all'ambito del server, ma possono essere ereditati dai singoli database (ad eccezione del ruolo del ##MS_LoginManager## server).
Analogamente a SQL Server locale, le autorizzazioni del server sono organizzate gerarchicamente. Le autorizzazioni utilizzate da questi ruoli a livello di server possono essere propagate alle autorizzazioni del database. Affinché le autorizzazioni siano effettivamente utili a livello di database, un account di accesso deve essere un membro del ruolo ##MS_DatabaseConnector## a livello di server (a partire da SQL Server 2022 (16.x) che concede l'autorizzazione CONNECT a tutti i database o ha un account utente in singoli database. Questo vale anche per il database master.
Si consideri l'esempio seguente: il ruolo ##MS_ServerStateReader## a livello di server contiene l'autorizzazione VIEW SERVER STATE. Un login membro di questo ruolo ha un account utente nei database master e WideWorldImporters. Questo utente dispone inoltre dell'autorizzazione VIEW DATABASE STATE in questi due database in base all'ereditarietà.
È possibile aggiungere entità di livello server (account di accesso di SQL Server, account di Windows e gruppi di Windows) nei ruoli a livello di server. Tutti i membri di un ruolo predefinito del server possono aggiungere altri account di accesso allo stesso ruolo. I membri dei ruoli server definiti dall'utente non possono aggiungere altri principali server al ruolo.
Ruoli predefiniti a livello di server
Nota
Questi ruoli a livello di server sono stati introdotti prima di SQL Server 2022 (16.x) e non sono disponibili nel database SQL di Azure o in Azure Synapse Analytics. Esistono ruoli speciali del server di database SQL di Azure per la gestione delle autorizzazioni equivalenti ai ruoli a livello di server introdotti in SQL Server 2022 (16.x). Per ulteriori informazioni su Database SQL, vedere Controllo e concessione dell'accesso al database.
Nella tabella seguente vengono illustrati i ruoli predefiniti a livello di server e le relative funzionalità.
| Ruolo predefinito a livello di server | Descrizione |
|---|---|
| sysadmin | I membri del ruolo predefinito del server sysadmin possono eseguire qualsiasi attività nel server. Importante: le autorizzazioni non possono essere negate ai membri di questo ruolo. |
| serveradmin | I membri del ruolo predefinito del server serveradmin sono autorizzati a modificare le opzioni di configurazione a livello di server e ad arrestare il server. |
| securityadmin | I membri del ruolo predefinito del server securityadmin gestiscono gli account di accesso e le relative proprietà. Possono GRANT, DENY, e REVOKE le autorizzazioni a livello di server.
securityadmin può anche GRANT, DENY e gestire le autorizzazioni a livello di database se ha accesso a un database. Inoltre, securityadmin può ripristinare le password per l'accesso di SQL server.IMPORTANTE: La possibilità di concedere l'accesso al motore di database e di configurare autorizzazioni utente consente all'amministratore responsabile della sicurezza di assegnare la maggior parte delle autorizzazioni server. Il ruolo securityadmin deve essere considerato equivalente al ruolo sysadmin . In alternativa, a partire da SQL Server 2022 (16.x), è consigliabile usare il nuovo ruolo predefinito del server ##MS_LoginManager##. |
| processadmin | I membri del ruolo predefinito del server processadmin sono autorizzati a terminare processi in esecuzione in un'istanza di SQL Server. |
| setupadmin | I membri del ruolo predefinito del server setupadmin sono autorizzati ad aggiungere e rimuovere server collegati usando istruzioni Transact-SQL. (L'adesione a sysadmin è necessaria per l'uso di Management Studio.) |
| bulkadmin | I membri del ruolo predefinito del server bulkadmin sono autorizzati a eseguire l'istruzione BULK INSERT. I membri di questo ruolo possono potenzialmente elevare i propri privilegi in determinate condizioni. Applicare il principio dei privilegi minimi quando si assegna questo ruolo e monitorare tutte le attività eseguite dai relativi membri. Il ruolo bulkadmin o le autorizzazioni ADMINISTER BULK OPERATIONS non sono supportate per SQL Server su Linux.Le operazioni bulk ( BULK INSERT istruzioni) non sono supportate per gli accessi basati sull'autenticazione di Microsoft Entra, su Linux o Windows. In questo scenario, solo i membri del ruolo sysadmin possono eseguire inserimenti in blocco per SQL Server. |
| diskadmin | Il ruolo predefinito del server diskadmin consente di gestire i file su disco. |
| dbcreator | I membri del ruolo predefinito del server dbcreator sono autorizzati a creare, modificare, eliminare e ripristinare qualsiasi database. |
| public | Ogni accesso di SQL Server appartiene al ruolo del server public. Quando un principale del server non ha ricevuto né negato autorizzazioni specifiche su un oggetto sicurabile, l'utente eredita le autorizzazioni concesse al pubblico su tale oggetto. Assegnare autorizzazioni pubbliche per qualsiasi oggetto quando si desidera che l'oggetto sia disponibile per tutti gli utenti. Non è possibile modificare l'appartenenza al pubblico. Nota:public viene implementato in modo diverso da altri ruoli e le autorizzazioni possono essere concesse, negate o revocate dai ruoli predefiniti del server pubblico. |
Importante
La maggior parte delle autorizzazioni fornite dai ruoli del server seguenti non è applicabile ad Azure Synapse Analytics: processadmin, serveradmin, setupadmin e diskadmin.
Ruoli predefiniti a livello del server introdotti in SQL Server 2022
La tabella seguente illustra i ruoli predefiniti a livello di server introdotti in SQL Server 2022 (16.x) e le relative funzionalità.
Nota
Queste autorizzazioni a livello di server non sono disponibili per Istanza gestita di SQL di Azure o Azure Synapse Analytics.
##MS_PerformanceDefinitionReader##, ##MS_ServerPerformanceStateReader##e ##MS_ServerSecurityStateReader## viene introdotto in SQL Server 2022 (16.x) e non sono disponibili nel database SQL di Azure.
| Ruolo predefinito a livello di server | Descrizione |
|---|---|
##MS_DatabaseConnector## |
I membri del ruolo predefinito del server ##MS_DatabaseConnector## possono connettersi a qualsiasi database senza la connessione a un account utente nel database.Per negare l'autorizzazione CONNECT a un database specifico, gli utenti possono creare un account utente corrispondente per questo accesso nel database e quindi DENY l'autorizzazione CONNECT per l'utente del database. Questa autorizzazione DENY annulla l'autorizzazione GRANT CONNECT proveniente da questo ruolo. |
##MS_LoginManager## |
I membri del ruolo predefinito del ##MS_LoginManager## server possono creare, eliminare e modificare gli account di accesso. Contrariamente al ruolo predefinito del server securityadmin, questo ruolo non consente ai membri di GRANT privilegi. È un ruolo più limitato che aiuta a rispettare il Principio dei privilegi minimi. |
##MS_DatabaseManager## |
I membri del ruolo predefinito del server ##MS_DatabaseManager## possono creare ed eliminare database. Un membro del ruolo ##MS_DatabaseManager## che crea un database diventa il proprietario del database e questo permette all'utente di connettersi al database come utente dbo. L'utente dbo ha tutte le autorizzazioni database nel database. I membri del ruolo ##MS_DatabaseManager## non hanno necessariamente l'autorizzazione per accedere ai database di cui non sono proprietari. Questo ruolo del server ha gli stessi privilegi del ruolo dbcreator in SQL Server, ma è consigliabile usare questo nuovo ruolo rispetto al precedente, poiché questo ruolo esiste anche nel database SQL di Azure e pertanto consente di usare gli stessi script in ambienti diversi. I membri di questo ruolo possono potenzialmente elevare i propri privilegi in determinate condizioni. Applicare il principio dei privilegi minimi quando si assegna questo ruolo e monitorare tutte le attività eseguite dai relativi membri. |
##MS_ServerStateManager## |
I membri del ruolo predefinito del server ##MS_ServerStateManager## hanno le stesse autorizzazioni del ruolo ##MS_ServerStateReader##. Inoltre, detiene l'autorizzazione ALTER SERVER STATE, che consente l'accesso a diverse operazioni di gestione, come: DBCC FREEPROCCACHE, DBCC FREESYSTEMCACHE ('ALL'), DBCC SQLPERF() |
##MS_ServerStateReader## |
I membri del ruolo predefinito del ##MS_ServerStateReader## server possono leggere tutte le viste a gestione dinamica (DMV) e le funzioni coperte rispettivamente da VIEW SERVER STATEe hanno VIEW DATABASE STATE l'autorizzazione per qualsiasi database in cui il membro di questo ruolo dispone di un account utente. |
##MS_ServerPerformanceStateReader## |
I membri del ruolo predefinito del ##MS_ServerPerformanceStateReader## server possono leggere tutte le viste a gestione dinamica (DMV) e le funzioni coperte rispettivamente da VIEW SERVER PERFORMANCE STATEe hanno VIEW DATABASE PERFORMANCE STATE l'autorizzazione per qualsiasi database in cui il membro di questo ruolo dispone di un account utente. Subset di ciò a cui il ruolo del ##MS_ServerStateReader## server ha accesso, che consente di aderire al principio del privilegio minimo. |
##MS_ServerSecurityStateReader## |
I membri del ruolo predefinito del ##MS_ServerSecurityStateReader## server possono leggere tutte le viste a gestione dinamica (DMV) e le funzioni coperte rispettivamente da VIEW SERVER SECURITY STATEe hanno VIEW DATABASE SECURITY STATE l'autorizzazione per qualsiasi database in cui il membro di questo ruolo dispone di un account utente. Piccolo sottoinsieme di ciò a cui il ruolo del ##MS_ServerStateReader## server ha accesso, che aiuta a rispettare il Principio dei Privilegi Minimi. |
##MS_DefinitionReader## |
I membri del ruolo predefinito del server ##MS_DefinitionReader## possono leggere tutte le viste del catalogo coperte da VIEW ANY DEFINITION, rispettivamente avere l’autorizzazione VIEW DEFINITION per qualsiasi database in cui il membro di questo ruolo dispone di un account utente. |
##MS_PerformanceDefinitionReader## |
I membri del ruolo predefinito del server ##MS_PerformanceDefinitionReader## possono leggere tutte le viste del catalogo coperte da VIEW ANY PERFORMANCE DEFINITION, rispettivamente avere l’autorizzazione VIEW PERFORMANCE DEFINITION per qualsiasi database in cui il membro di questo ruolo dispone di un account utente. Sottoinsieme di ciò a cui il ruolo del ##MS_DefinitionReader## server ha accesso. |
##MS_SecurityDefinitionReader## |
I membri del ruolo predefinito del server ##MS_SecurityDefinitionReader## possono leggere tutte le viste del catalogo coperte da VIEW ANY SECURITY DEFINITION, rispettivamente avere l’autorizzazione VIEW SECURITY DEFINITION per qualsiasi database in cui il membro di questo ruolo dispone di un account utente. Piccolo sottoinsieme di ciò a cui il ruolo del ##MS_DefinitionReader## server ha accesso, che consente di rispettare il Principio dei Privilegi Minimi. |
Autorizzazioni dei ruoli predefiniti del server
A ogni ruolo predefinito del server vengono assegnate autorizzazioni specifiche.
Autorizzazioni dei nuovi ruoli predefiniti del server in SQL Server 2022
La tabella seguente mostra le autorizzazioni assegnate ai ruoli a livello di server. Mostra inoltre le autorizzazioni a livello di database che vengono ereditate finché l'utente può connettersi a singoli database.
| Ruolo predefinito a livello di server | Autorizzazioni a livello di server | Autorizzazioni a livello di database |
|---|---|---|
##MS_DatabaseConnector## |
- CONNECT ANY DATABASE |
- CONNECT |
##MS_LoginManager## |
- CREATE LOGIN- ALTER ANY LOGIN |
N/D |
##MS_DatabaseManager## |
- CREATE ANY DATABASE- ALTER ANY DATABASE |
- ALTER |
##MS_ServerStateManager## |
- ALTER SERVER STATE- VIEW SERVER STATE- VIEW SERVER PERFORMANCE STATE- VIEW SERVER SECURITY STATE |
- VIEW DATABASE STATE- VIEW DATABASE PERFORMANCE STATE- VIEW DATABASE SECURITY STATE |
##MS_ServerStateReader## |
- VIEW SERVER STATE- VIEW SERVER PERFORMANCE STATE- VIEW SERVER SECURITY STATE |
- VIEW DATABASE STATE- VIEW DATABASE PERFORMANCE STATE- VIEW DATABASE SECURITY STATE |
##MS_ServerPerformanceStateReader## |
- VIEW SERVER PERFORMANCE STATE |
- VIEW DATABASE PERFORMANCE STATE |
##MS_ServerSecurityStateReader## |
- VIEW SERVER SECURITY STATE |
- VIEW DATABASE SECURITY STATE |
##MS_DefinitionReader## |
- VIEW ANY DATABASE- VIEW ANY DEFINITION- VIEW ANY PERFORMANCE DEFINITION- VIEW ANY SECURITY DEFINITION |
- VIEW DEFINITION- VIEW PERFORMANCE DEFINITION- VIEW SECURITY DEFINITION |
##MS_PerformanceDefinitionReader## |
- VIEW ANY PERFORMANCE DEFINITION |
- VIEW PERFORMANCE DEFINITION |
##MS_SecurityDefinitionReader## |
- VIEW ANY SECURITY DEFINITION |
- VIEW SECURITY DEFINITION |
Autorizzazioni dei ruoli del server per SQL Server 2019 e versioni precedenti
L'immagine seguente mostra le autorizzazioni assegnate ai ruoli del server legacy (SQL Server 2019 (15.x) e versioni precedenti.
L'autorizzazione CONTROL SERVER è simile ma non identica al ruolo predefinito del server sysadmin . Le entità con l'autorizzazione CONTROL SERVER possono vedersi negare autorizzazioni specifiche. Dal punto di vista della sicurezza, considerate le entità con CONTROL SERVER come identiche ai membri di sysadmin, per i diversi modi per elevare le autorizzazioni da CONTROL SERVER a livello di sysadmin completo. Diversi DBCC comandi e molte procedure di sistema richiedono l'appartenenza al ruolo predefinito del server sysadmin .
Autorizzazioni a livello di server
Ai ruoli del server definiti dall'utente è possibile aggiungere solo autorizzazioni a livello di server. Per elencare le autorizzazioni a livello di server, eseguire la seguente istruzione. Di seguito sono elencate le autorizzazioni a livello di server:
SELECT *
FROM sys.fn_builtin_permissions('SERVER')
ORDER BY permission_name;
Per altre informazioni sulle autorizzazioni, vedere Autorizzazioni (motore di database) e sys.fn_builtin_permissions.
Lavorare con i ruoli a livello di server
Nella tabella seguente vengono illustrati i comandi, le viste e le funzioni che consentono di utilizzare ruoli a livello di server.
| Funzionalità | Tipo | Descrizione |
|---|---|---|
| sp_helpsrvrole | Metadati | Restituisce un elenco di ruoli a livello di server. |
| sp_helpsrvrolemember | Metadati | Restituisce informazioni sui membri di un ruolo a livello di server. |
| sp_srvrolepermission | Metadati | Visualizza le autorizzazioni di un ruolo a livello di server. |
| IS_SRVROLEMEMBER | Metadati | Indica se un account di accesso di SQL Server è un membro del ruolo a livello di server specificato. |
| sys.server_role_members | Metadati | Restituisce una riga per ciascun membro di ogni ruolo a livello di server. |
| CREATE SERVER ROLE | Comando | Crea un ruolo del server definito dall'utente. |
| ALTER SERVER ROLE | Comando | Modifica l'appartenenza di un ruolo del server o il nome di un ruolo del server definito dall'utente. |
| DROP SERVER ROLE | Comando | Rimuove un ruolo del server definito dall'utente. |
| sp_addsrvrolemember | Comando | Aggiunge un accesso come membro di un ruolo a livello di server. Deprecato. Utilizzare ALTER SERVER ROLE. |
| sp_dropsrvrolemember | Comando | Rimuove un account di accesso di SQL Server o un utente o un gruppo di Windows da un ruolo a livello di server. Deprecato. Usare ALTER SERVER ROLE . |
Ruoli specifici di SQL Server abilitati da Azure Arc
Quando si installa l'Estensione di Azure per SQL Server in modalità con privilegi non minimi, l'installazione:
- Crea un ruolo a livello di server:
SQLArcExtensionServerRole - Crea un ruolo a livello di database:
SQLArcExtensionUserRole - Aggiunge l'account
NT AUTHORITY\SYSTEMa ogni ruolo - Esegue la mappatura a livello di database per ciascun database
- Concede autorizzazioni minime per le caratteristiche abilitate
In alternativa, è possibile configurare SQL Server abilitato da Azure Arc per l'esecuzione in modalità con privilegi minimi. Per altre informazioni, vedere Operate SQL Server abilitato da Azure Arc con privilegi minimi.
Inoltre, Azure l'estensione per SQL Server revoca le autorizzazioni per questi ruoli quando non sono più necessarie per funzionalità specifiche.
Nota
Le azioni descritte in precedenza richiedono che Deployer si connetta a SQL Server come NT AUTHORITY\SYSTEM. Se l'account di accesso NT AUTHORITY\SYSTEM viene rimosso, disabilitato o viene negato il permesso CONNECT SQL, il Deployer non può eseguire alcuna di queste azioni e l'estensione Azure per SQL Server non riesce a effettuare il provisioning. Vedere Prerequisiti per i passaggi per verificare e ripristinare questo login.
SqlServerExtensionPermissionProvider è un'attività di Windows. Esegue Deployer.exe per concedere o revocare privilegi in SQL Server quando rileva:
- Nell'host è installata una nuova istanza di SQL Server
- Un'istanza di SQL Server viene disinstallata dall'host
- Una funzionalità a livello di istanza è abilitata o disabilitata oppure le impostazioni vengono aggiornate
- Il servizio di estensione viene riavviato
- Le autorizzazioni JIT (Just-In-Time) sono abilitate o disabilitate
Nota
Prima della versione di luglio 2024, SqlServerExtensionPermissionProvider era un'attività pianificata che veniva eseguita ogni ora.
Per informazioni dettagliate, vedere Configurare gli account del servizio Windows e le autorizzazioni per l'estensione Azure per SQL Server.
Se si disinstalla Azure'estensione per SQL Server, i ruoli a livello di server e di database vengono rimossi.
Per le autorizzazioni, vedere Autorizzazioni.
Contenuto correlato
- Ruoli a livello di database
- Viste del catalogo relative alla sicurezza (Transact-SQL)
- Funzioni di sicurezza (Transact-SQL)
- Sicurezza di SQL Server
- Autorizzazioni del principale del server GRANT (Transact-SQL)
- REVOKE Autorizzazioni per il Principale del Server (Transact-SQL)
- Negare autorizzazioni a principali del server (Transact-SQL)
- Creazione di un ruolo del server
- Ruoli del server di database SQL di Azure per la gestione delle autorizzazioni