Ruoli a livello di database
Per una facile gestione delle autorizzazioni dei database, SQL Server fornisce diversi ruoli rappresentanti entità di sicurezza all'interno delle quali sono raggruppate altre entità. I ruoli sono analoghi ai gruppi nel sistema operativo Microsoft Windows. L'ambito delle autorizzazioni dei ruoli a livello di database è l'intero database.
In SQL Server sono disponibili due tipi di ruoli a livello di database, ovvero i ruoli predefiniti di database e i ruoli flessibili di database. Questi ultimi possono essere creati dall'utente.
I ruoli predefiniti di database vengono definiti a livello del database e sono presenti in ogni database. I membri dei ruoli di database db_owner e db_securityadmin possono gestire l'appartenenza al ruolo predefinito di database. Solo i membri del ruolo di database db_owner, tuttavia, possono aggiungere membri al ruolo predefinito di database db_owner. Nel database msdb sono presenti inoltre alcuni ruoli predefiniti del database per scopi specifici.
È possibile aggiungere qualsiasi account del database e altri ruoli SQL Server ai ruoli a livello di database. Tutti i membri di un ruolo predefinito del database possono aggiungere altri account di accesso allo stesso ruolo.
Importante |
---|
Evitare di aggiungere ruoli flessibili di database come membri di ruoli predefiniti, poiché in tal modo si potrebbe provocare un'imprevista intensificazione dei privilegi. |
Nella tabella seguente sono mostrati i ruoli a livello di database predefinito e le relative funzionalità. Questi ruoli esistono in tutti i database.
Nome del ruolo a livello di database |
Descrizione |
---|---|
db_owner |
I membri del ruolo predefinito del database db_owner possono eseguire tutte le attività di configurazione e di manutenzione sul database e anche eliminare il database. |
db_securityadmin |
I membri del ruolo predefinito del database db_securityadmin possono modificare le appartenenze al ruolo e gestire le autorizzazioni. L'aggiunta di entità a questo ruolo potrebbe provocare un'imprevista intensificazione dei privilegi. |
db_accessadmin |
I membri del ruolo predefinito del database db_accessadmin possono aggiungere o rimuovere le autorizzazioni di accesso al database per gli account di accesso di Windows, i gruppi di Windows e gli account di accesso di SQL Server. |
db_backupoperator |
I membri del ruolo predefinito del database db_backupoperator possono eseguire il backup del database. |
db_ddladmin |
I membri del ruolo predefinito del database db_ddladmin possono eseguire qualsiasi comando DDL (Data Definition Language) in un database. |
db_datawriter |
I membri del ruolo predefinito del database db_datawriter possono aggiungere, eliminare o modificare i dati di tutte le tabelle utente. |
db_datareader |
Membri del ruolo predefinito del database db_datareader possono leggere tutti i dati di tutte le tabelle utente. |
db_denydatawriter |
I membri del ruolo predefinito del database db_denydatawriter non possono aggiungere, modificare o eliminare dati delle tabelle utente contenute in un database. |
db_denydatareader |
I membri del ruolo predefinito del database db_denydatareader non possono leggere i dati delle tabelle utente contenute in un database. |
Ruoli msdb
Il database msdb contiene i ruoli specifici per uno scopo illustrati nella tabella seguente.
Nome del ruolo in msdb |
Descrizione |
---|---|
db_ssisadmin db_ssisoperator db_ssisltduser |
I membri di tali ruoli del database possono amministrare e utilizzare SSIS. In istanze di SQL Server aggiornate da una versione precedente potrebbe essere presente una versione precedente del ruolo denominata utilizzando Data Transformation Services (DTS) anziché SSIS. Per ulteriori informazioni, vedere Ruoli Integration Services (servizio SSIS). |
dc_admin dc_operator dc_proxy |
I membri di tali ruoli del database possono amministrare e utilizzare l'agente di raccolta dati. Per ulteriori informazioni, vedere Raccolta dati. |
PolicyAdministratorRole |
I membri del ruolo db_ PolicyAdministratorRole del database possono eseguire tutte le attività di configurazione e manutenzione su criteri e condizioni della gestione basata sui criteri. Per ulteriori informazioni, vedere Amministrazione di server tramite la gestione basata su criteri. |
ServerGroupAdministratorRole ServerGroupReaderRole |
I membri di questi ruoli del database possono amministrare e utilizzare gruppi di server registrati. |
dbm_monitor |
Creato nel database msdb quando il primo database viene registrato in Monitoraggio mirroring del database. Nel ruolo dbm_monitor non è incluso alcun membro fino a quando un amministratore di sistema non provvede all'assegnazione di utenti al ruolo stesso. |
Importante |
---|
I membri dei ruoli db_ssisadmin e dc_admin potrebbero essere in grado di elevare i propri privilegi a sysadmin. Questa elevazione dei privilegi è garantita dalla possibilità dei ruoli di modificare i pacchetti di Integration Services, e i pacchetti di Integration Services possono essere eseguiti in SQL Server utilizzando il contesto di sicurezza sysadmin di SQL Server Agent. Per impedire questa elevazione dei privilegi durante l'esecuzione dei piani di manutenzione, set di raccolta dati e altri pacchetti di Integration Services, configurare i processi SQL Server Agent che consentono l'esecuzione dei pacchetti in modo da utilizzare un account proxy con privilegi limitati o aggiungere solo i membri sysadmin ai ruoli db_ssisadmin e dc_admin. |
Utilizzo di ruoli a livello di database
Nella tabella seguente vengono spiegati i comandi, le viste e le funzioni necessari per l'utilizzo dei ruoli a livello di database.
Caratteristica |
Tipo |
Descrizione |
---|---|---|
Metadata |
Restituisce un elenco dei ruoli predefiniti del database. |
|
Metadati |
Visualizza le autorizzazioni di un ruolo predefinito del database. |
|
Metadati |
Restituisce informazioni sui ruoli del database corrente. |
|
Metadati |
Restituisce informazioni sui membri di un ruolo del database corrente. |
|
Metadati |
Restituisce una riga per ogni membro di ogni ruolo del database. |
|
Metadati |
Indica se l'utente corrente è membro del gruppo di Microsoft Windows o del ruolo di database di Microsoft SQL Server specificato. |
|
Comando |
Crea un nuovo ruolo di database nel database corrente. |
|
Comando |
Modifica il nome di un ruolo del database. |
|
Comando |
Rimuove un ruolo dal database. |
|
Comando |
Crea un nuovo ruolo di database nel database corrente. |
|
Comando |
Rimuove un ruolo del database dal database corrente. |
|
Comando |
Aggiunge un utente del database, un ruolo del database, un account di accesso di Windows o un gruppo di Windows a un ruolo del database nel database corrente. |
|
Comando |
Rimuove un account di sicurezza da un ruolo di SQL Server nel database corrente. |
Ruolo di database public
Ogni utente di database appartiene al ruolo di database public. Quando a un utente non sono state concesse o sono state negate autorizzazioni specifiche per un oggetto a protezione diretta, l'utente eredita le autorizzazioni concesse a public su tale oggetto.
Contenuto correlato
Viste del catalogo relative alla sicurezza (Transact-SQL)
Stored procedure di sicurezza (Transact-SQL)