sp_addapprole (Transact-SQL)

Si applica a:SQL Server

Aggiunge un ruolo applicazione al database corrente.

Importante

Questa funzionalità verrà rimossa nelle versioni future di SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata. Usare invece CREATE APPLICATION ROLE .

Convenzioni di sintassi Transact-SQL

Sintassi

sp_addapprole
    [ @rolename = ] N'rolename'
    , [ @password = ] N'password'
[ ; ]

Argomenti

[ @rolename = ] N'rolename'

Nome del nuovo ruolo applicazione. @rolename è sysname, senza impostazione predefinita. @rolename deve essere un identificatore valido e non può esistere già nel database corrente.

I nomi dei ruoli applicazione possono includere da 1 a 128 caratteri, compresi lettere, simboli e numeri. I nomi dei ruoli non possono contenere una barra rovesciata (\) né null o una stringa vuota ('').

[ @password = ] N'password'

Password necessaria per attivare il ruolo applicazione. @password è sysname, senza impostazione predefinita. @password non può essere NULL.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Osservazioni:

Nelle versioni precedenti di SQL Server gli utenti (e i ruoli) non sono completamente distinti dagli schemi. A partire da SQL Server 2005 (9.x), gli schemi sono completamente distinti dai ruoli. Questa architettura si riflette nel comportamento di CREATE APPLICATION ROLE. Questa istruzione sostituisce sp_addapprole.

Per mantenere la compatibilità con le versioni precedenti di SQL Server, sp_addapprole esegue i controlli seguenti:

  • Se non esiste già uno schema con lo stesso nome del ruolo applicazione, viene creato lo schema. Il nuovo schema è di proprietà del ruolo applicazione ed è lo schema predefinito del ruolo applicazione.

  • Se esiste già uno schema con lo stesso nome del ruolo applicazione, la procedura ha esito negativo.

  • sp_addapprole non controlla la complessità delle password. La complessità delle password viene controllata da CREATE APPLICATION ROLE.

Il parametro @password viene archiviato come hash unidirezionale.

La sp_addapprole stored procedure non può essere eseguita dall'interno di una transazione definita dall'utente.

Importante

L'opzione Microsoft ODBC encrypt non è supportata da SqlClient. Se possibile, richiedere all'utente di immettere le credenziali del ruolo applicazione in fase di esecuzione. Evitare di archiviare le credenziali in un file. Se è necessario disporre di credenziali persistenti, crittografarle tramite le funzioni CryptoAPI.

Autorizzazioni

È richiesta l'autorizzazione ALTER ANY APPLICATION ROLE nel database. Se uno schema con lo stesso nome e proprietario del nuovo ruolo non esiste già, è necessaria anche l'autorizzazione CREATE SCHEMA per il database.

Esempi

Nell'esempio seguente viene aggiunto il nuovo ruolo SalesApp applicazione con la password x97898jLJfcooFUYLKm387gf3 al database corrente.

EXEC sp_addapprole 'SalesApp', 'x97898jLJfcooFUYLKm387gf3';
GO