sp_addapprole (Transact-SQL)

Aggiunge un ruolo applicazione al database corrente.

Nota importanteImportante

Questa caratteristica verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server. Evitare di utilizzare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata. Utilizzare CREATE APPLICATION ROLE in alternativa.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

sp_addapprole [ @rolename = ] 'role' , [ @password = ] 'password'

Argomenti

  • [ @rolename = ] 'role'
    Nome del nuovo ruolo applicazione. role è di tipo sysname e non prevede alcun valore predefinito. role deve essere un identificatore valido e non deve essere già presente nel database corrente.

    I nomi dei ruoli applicazione possono includere da 1 a 128 caratteri, compresi lettere, simboli e numeri. I nomi di ruolo non possono contenere barre rovesciate (\), né essere NULL o stringhe vuote ('').

  • [ @password = ] 'password'
    Password necessaria per attivare il ruolo applicazione. password è di tipo sysname e non prevede alcun valore predefinito. password non può essere NULL.

Valori restituiti

0 (esito positivo) o 1 (esito negativo)

Osservazioni

Nelle versioni precedenti di SQL Server gli utenti (e i ruoli) non si diversificano completamente dagli schemi. A partire da SQL Server 2005, gli schemi sono completamente distinti dai ruoli. Questa nuova architettura si riflette nel funzionamento dell'istruzione CREATE APPLICATION ROLE. Questa istruzione sostituisce infatti la stored procedure sp_addapprole. Per ulteriori informazioni, vedere Separazione tra schema e utente.

Per garantire la compatibilità con le versioni precedenti di SQL Server, sp_addapprole sarà caratterizzata dal funzionamento di seguito descritto:

  • Se uno schema con lo stesso nome del ruolo applicazione non esiste, tale schema verrà creato. Il nuovo schema sarà di proprietà del ruolo applicazione e sarà lo schema predefinito del ruolo applicazione.

  • Se invece uno schema con lo stesso nome del ruolo applicazione esiste già, la procedura verrà interrotta.

  • La complessità delle password non viene controllata dalla stored procedure sp_addapprole, ma viene controllata dall'istruzione CREATE APPLICATION ROLE.

Il parametro password viene archiviato in un hash unidirezionale.

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

Nota sulla protezioneNota sulla protezione

L'opzione encrypt di Microsoft ODBC non è supportata da SqlClient. Se possibile, richiedere all'utente di immettere le credenziali del ruolo applicazione in fase di esecuzione. Evitare l'archiviazione delle 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 lo stesso proprietario del nuovo ruolo non esiste, è richiesta anche l'autorizzazione CREATE SCHEMA nel database.

Esempi

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

EXEC sp_addapprole 'SalesApp', 'x97898jLJfcooFUYLKm387gf3' ;
GO