CREATE ROLE (Transact-SQL)

Si applica a:SQL Server database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics AnalyticsPlatform System (PDW)SQL analytics endpoint in Microsoft FabricWarehouse in Microsoft Fabric

Crea un nuovo ruolo di database nel database corrente.

Convenzioni di sintassi Transact-SQL

Sintassi

CREATE ROLE role_name [ AUTHORIZATION owner_name ]  

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere la documentazione delle versioni precedenti.

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à (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