CREATE ROLE (Transact-SQL)

Viene creato un nuovo ruolo di database nel database corrente.

Icona di collegamento a un argomentoConvenzioni della 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.

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, utilizzare la stored procedure sp_addrolemember. Per ulteriori informazioni, vedere Ruoli a livello di database.

I ruoli dei database sono visibili nelle viste del catalogo sys.database_role_members e sys.database_principals.

Nota di attenzioneAttenzione

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 utilizzare 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 ulteriori informazioni sulle viste del catalogo, vedere Viste del catalogo (Transact-SQL).

Autorizzazioni

È richiesta l'autorizzazione CREATE ROLE per il database oppure l'appartenenza al ruolo predefinito del database db_securityadmin. Se si utilizza l'opzione AUTHORIZATION, sono richieste anche le autorizzazioni seguenti:

  • Per assegnare la proprietà di un ruolo a un altro utente, è richiesta l'autorizzazione IMPERSONATE per tale 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

A. 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.

USE AdventureWorks2008R2;
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.

USE AdventureWorks2008R2;
CREATE ROLE auditors AUTHORIZATION db_securityadmin;
GO