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.
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. I ruoli a livello di database hanno autorizzazioni su tutto il database.
In SQL Server sono disponibili due tipi di ruoli a livello di database: i ruoli predefiniti del database e i ruoli flessibili del database che è possibile creare.
I ruoli predefiniti del database vengono definiti a livello di database ed esistono in ogni database. I membri del ruolo del database db_owner possono gestire l'appartenenza al ruolo predefinito del database. Esistono anche alcuni ruoli predefiniti e con uno scopo speciale nel database msdb.
È possibile aggiungere qualsiasi account di database e altri ruoli di SQL Server nei ruoli a livello di database. Ogni membro di un ruolo predefinito del database può aggiungere altri account di accesso allo stesso ruolo.
Importante
Non aggiungere ruoli di database flessibili come membri dei ruoli predefiniti. Ciò potrebbe consentire un'escalation involontaria dei privilegi.
La tabella seguente illustra i ruoli predefiniti a livello di database 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 manutenzione nel database e possono anche eliminare il database. |
| db_securityadmin | I membri del ruolo predefinito del database db_securityadmin possono modificare l'appartenenza al ruolo e gestire le autorizzazioni. L'aggiunta di utenti principali a questo ruolo potrebbe consentire un'escalation dei privilegi non voluta. |
| 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 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 in tutte le tabelle utente. |
| db_datareader | I membri del ruolo predefinito del database db_datareader possono leggere tutti i dati da tutte le tabelle utente. |
| db_denydatawriter | I membri del ruolo predefinito del database db_denydatawriter non possono aggiungere, modificare o eliminare dati nelle tabelle utente all'interno di un database. |
| db_denydatareader | I membri del ruolo predefinito del database db_denydatareader non possono leggere dati nelle tabelle utente all'interno di un database. |
Ruoli msdb
Il database msdb contiene i ruoli speciali illustrati nella tabella seguente.
| nome ruolo msdb | Descrizione |
|---|---|
db_ssisadmindb_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_admindc_operator dc_proxy |
I membri di questi ruoli del database possono amministrare e usare l'agente di raccolta dati. Per altre informazioni, vedere Raccolta dati. |
| PolicyAdministratorRole | I membri del ruolo del database db_PolicyAdministratorRole possono eseguire tutte le attività di configurazione e manutenzione su criteri e condizioni di Gestione Basata su Criteri. Per altre informazioni, vedere Amministrare i server tramite la gestione basata su criteri. |
|
ServerGroupAdministratorRole ServerGroupReaderRole |
I membri di questi ruoli del database possono amministrare e usare gruppi di server registrati. |
| dbm_monitor | Creato nel msdb database quando viene registrato il primo database nel Monitor del mirroring del database. Il ruolo dbm_monitor non ha membri finché un amministratore di sistema non assegna gli utenti al ruolo. |
Importante
I membri del ruolo db_ssisadmin e del ruolo dc_admin possono essere in grado di elevare i propri privilegi a sysadmin. Questa elevazione dei privilegi può verificarsi perché questi ruoli possono modificare i pacchetti di Integration Services e i pacchetti di Integration Services possono essere eseguiti da SQL Server tramite il contesto di sicurezza sysadmin di SQL Server Agent. Per evitare questa elevazione dei privilegi quando si eseguono piani di manutenzione, set di raccolta dati e altri pacchetti di Integration Services, configurare i processi di SQL Server Agent che eseguono pacchetti per usare un account proxy con privilegi limitati o aggiungere solo membri sysadmin ai ruoli db_ssisadmin e dc_admin.
Uso dei ruoli di Database-Level
Nella tabella seguente vengono illustrati i comandi, le viste e le funzioni per l'uso dei ruoli a livello di database.
| Caratteristica / Funzionalità | TIPO | 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 nel database corrente. |
| sp_helprolemember (Transact-SQL) | Metadati | Restituisce informazioni sui membri di un ruolo nel 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 del database di Microsoft SQL Server specificato. |
| CREATE ROLE (Transact-SQL) | Comando | Crea un nuovo ruolo del database nel database corrente. |
| MODIFICA RUOLO (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 del 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 corrente. |
| sp_droprolemember (Transact-SQL) | Comando | Rimuove un account di sicurezza da un ruolo di SQL Server nel database corrente. |
Ruolo database pubblico
Ogni utente del database appartiene al ruolo del database pubblico . Quando a un utente non sono state concesse o negate autorizzazioni specifiche per un oggetto a protezione diretta, l'utente eredita le autorizzazioni concesse al pubblico su tale oggetto.
Contenuto correlato
Viste del catalogo relative alla sicurezza (Transact-SQL)
Procedure memorizzate di sicurezza (Transact-SQL)