CREATE ROLE (Transact-SQL)
Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW) Endpoint di analisi SQL in Microsoft Fabric Warehouse in Microsoft Fabric
Crea un nuovo ruolo di database nel database corrente.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
CREATE ROLE role_name [ AUTHORIZATION owner_name ]
Argomenti
role_name
Nome del ruolo che si desidera creare.
AUTHORIZATION owner_name
Utente o ruolo del database che sarà proprietario del nuovo ruolo. Se non viene specificato alcun utente, il ruolo sarà di proprietà dell'utente che esegue l'istruzione CREATE ROLE. Il proprietario del ruolo o qualsiasi membro di un ruolo proprietario può aggiungere o rimuovere membri del ruolo.
Osservazioni:
I ruoli sono entità a protezione diretta a livello di database. Dopo aver creato un ruolo, configurare le autorizzazioni a livello di database per il ruolo tramite GRANT, DENY e REVOKE. Per aggiungere membri a un ruolo del database, usare ALTER ROLE (Transact-SQL). Per altre informazioni, vedere Ruoli a livello di database.
I ruoli del database sono visibili nelle viste del catalogo sys.database_role_members e sys.database_principals.
Per informazioni sulla progettazione di un sistema di autorizzazioni, vedere Introduzione alle autorizzazioni del motore di database.
Attenzione
A partire da SQL Server 2005, il funzionamento degli schemi è stato modificato. È pertanto possibile che il codice in cui gli schemi vengono considerati equivalenti agli utenti del database non restituisca risultati corretti. Non utilizzare le viste del catalogo delle versioni precedenti, inclusa sysobjects, nei database in cui sia già stata utilizzata una delle istruzioni DDL seguenti: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER AUTHORIZATION. In tali database è invece necessario usare le nuove viste del catalogo. Le nuove viste del catalogo prendono in considerazione la separazione tra entità e schemi introdotta in SQL Server 2005. Per altre informazioni sulle viste del catalogo, vedere Viste del catalogo (Transact-SQL).
Autorizzazioni
È richiesta l'autorizzazione CREATE ROLE per il database o l'appartenenza al ruolo predefinito del database db_securityadmin. Se si usa l'opzione AUTHORIZATION, sono necessarie anche le autorizzazioni seguenti:
Per assegnare la proprietà di un ruolo a un altro utente, è richiesta l'autorizzazione IMPERSONATE per quell'utente.
Per assegnare la proprietà di un ruolo a un altro ruolo, è richiesta l'appartenenza al ruolo destinatario oppure l'autorizzazione ALTER per tale ruolo.
Per assegnare la proprietà di un ruolo a un ruolo applicazione, è richiesta l'autorizzazione ALTER per il ruolo applicazione.
Esempi
Tutti gli esempi seguenti usano il database AdventureWorks.
R. Creazione di un ruolo del database di proprietà di un utente del database
Nell'esempio seguente viene creato il ruolo del database buyers
di proprietà dell'utente BenMiller
.
CREATE ROLE buyers AUTHORIZATION BenMiller;
GO
B. Creazione di un ruolo del database di proprietà di un ruolo predefinito del database
Nell'esempio seguente viene creato il ruolo del database auditors
di proprietà del ruolo predefinito del database db_securityadmin
.
CREATE ROLE auditors AUTHORIZATION db_securityadmin;
GO
Vedi anche
Entità di sicurezza (Motore di database)
ALTER ROLE (Transact-SQL)
DROP ROLE (Transact-SQL)
EVENTDATA (Transact-SQL)
sp_addrolemember (Transact-SQL)
sys.database_role_members (Transact-SQL)
sys.database_principals (Transact-SQL)
Introduzione alle autorizzazioni del motore di database