sp_unsetapprole (Transact-SQL)

Si applica a:SQL Server

Disattiva un ruolo applicazione e ripristina il contesto di sicurezza precedente.

Convenzioni di sintassi Transact-SQL

Sintassi

sp_unsetapprole [ @cookie = ] cookie
[ ; ]

Argomenti

Specifica il cookie creato al momento dell'attivazione del ruolo applicazione. @cookie è varbinary(8000), senza impostazione predefinita. Il cookie viene creato da sp_setapprole (Transact-SQL).

Nota

Il parametro cookie OUTPUT per sp_setapprole è attualmente documentato come varbinary(8000) che rappresenta la lunghezza massima corretta. Tuttavia, l'implementazione corrente restituisce varbinary(50). Le applicazioni devono continuare a riservare varbinary(8000) in modo che l'applicazione continui a funzionare correttamente se le dimensioni restituite dal cookie aumentano in una versione futura.

Valori del codice restituito

0 (esito positivo) o 1 (esito negativo)

Osservazioni:

Dopo l'attivazione di un ruolo applicazione tramite sp_setapprole, il ruolo rimane attivo fino a quando l'utente non si disconnette dal server o esegue sp_unsetapprole.

Per una panoramica dei ruoli applicazione, vedere Ruoli applicazione.

Autorizzazioni

Richiede l'appartenenza al pubblico e la conoscenza del cookie salvato al momento dell'attivazione del ruolo applicazione.

Esempi

Nell'esempio seguente viene attivato il ruolo applicazione Sales11 con la password fdsd896#gfdbfdkjgh700mM e viene creato un cookie. Nell'esempio viene restituito il nome dell'utente corrente e quindi viene ripristinato il contesto originale tramite l'esecuzione di sp_unsetapprole.

DECLARE @cookie VARBINARY(8000);

EXEC sp_setapprole 'Sales11',
    'fdsd896#gfdbfdkjgh700mM',
    @fCreateCookie = true,
    @cookie = @cookie OUTPUT;

-- The application role is now active.
SELECT USER_NAME();

-- Return the name of the application role, Sales11.
EXEC sp_unsetapprole @cookie;
    -- The application role is no longer active.
    -- The original context has now been restored.
GO

-- Return the name of the original user.
SELECT USER_NAME();
GO