Condividi tramite


Ruoli a livello di database

Per gestire facilmente le autorizzazioni nei database, SQL Server fornisce diversi ruoli che sono entità di sicurezza che raggruppano altre entità. Sono come gruppi nel sistema operativo Microsoft Windows. L'ambito delle autorizzazioni dei ruoli a livello di database è l'intero database.

Esistono due tipi di ruoli a livello di database in SQL Server: ruoli predefiniti del database predefiniti nel database e ruoli flessibili del database che è possibile creare.

I ruoli predefiniti di database vengono definiti a livello del database e sono presenti in ogni database. I membri del ruolo del database db_owner possono gestire l'appartenenza al ruolo predefinito del database. Nel database msdb sono presenti inoltre alcuni ruoli predefiniti del database per scopi specifici.

È possibile aggiungere qualsiasi account di database e altri ruoli di SQL Server nei 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 l'accesso al database per account di accesso di Windows, gruppi di Windows e account di accesso 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 ruoli specifici per uno scopo illustrati nella tabella seguente.

Nome del ruolo in msdb Descrizione
db_ssisadmin

db_ssisoperator

db_ssisltduser
I membri di questi ruoli del database possono amministrare e usare SSIS. Le istanze di SQL Server aggiornate da una versione precedente potrebbero contenere una versione precedente del ruolo denominata usando Data Transformation Services (DTS) anziché SSIS. Per altre informazioni, vedere Ruoli di 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 altre informazioni, vedere Data Collection.
PolicyAdministratorRole I membri del ruolo del database db_ PolicyAdministratorRole possono eseguire tutte le attività di configurazione e manutenzione su criteri e condizioni della gestione basata su criteri. Per altre informazioni, vedere Amministrare server usando 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 msdb database quando il primo database viene registrato in Monitoraggio mirroring del database. Il ruolo dbm_monitor non include 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 loro privilegi a sysadmin. Questa elevazione dei privilegi può verificarsi perché tali ruoli possono modificare i pacchetti Integration Services e questi ultimi possono essere eseguiti da SQL Server usando il contesto di sicurezza sysadmin di SQL Server Agent. Per impedire questa elevazione dei privilegi durante l'esecuzione di piani di manutenzione, set di raccolta dati e altri pacchetti di Integration Services, configurare i processi di SQL Server Agent che eseguono pacchetti in modo che usino 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.

Funzionalità Type Descrizione
sp_helpdbfixedrole (Transact-SQL) Metadati Restituisce un elenco dei ruoli predefiniti del database.
sp_dbfixedrolepermission (Transact-SQL) Metadati Visualizza le autorizzazioni di un ruolo predefinito del database.
sp_helprole (Transact-SQL) Metadati Restituisce informazioni sui ruoli del database corrente.
sp_helprolemember (Transact-SQL) Metadati Restituisce informazioni sui membri di un ruolo del database corrente.
sys.database_role_members (Transact-SQL) Metadati Restituisce una riga per ogni membro di ogni ruolo del database.
IS_MEMBER (Transact-SQL) Metadati Indica se l'utente corrente è membro del gruppo di Microsoft Windows o del ruolo di database di Microsoft SQL Server specificato.
CREATE ROLE (Transact-SQL) Comando Crea un nuovo ruolo di database nel database corrente.
ALTER ROLE (Transact-SQL) Comando Modifica il nome di un ruolo del database.
DROP ROLE (Transact-SQL) Comando Rimuove un ruolo dal database.
sp_addrole (Transact-SQL) Comando Crea un nuovo ruolo di database nel database corrente.
sp_droprole (Transact-SQL) Comando Rimuove un ruolo del database dal database corrente.
sp_addrolemember (Transact-SQL) 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.
sp_droprolemember (Transact-SQL) 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.

Viste del catalogo relative alla sicurezza (Transact-SQL)

Stored procedure di sicurezza (Transact-SQL)

Funzioni di sicurezza (Transact-SQL)

Sicurezza di SQL Server

sp_helprotect (Transact-SQL)