sp_unsetapprole (Transact-SQL)
Si applica a: SQL Server
Disattiva un ruolo applicazione e ripristina il contesto di sicurezza precedente.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
sp_unsetapprole [ @cookie = ] cookie
[ ; ]
Argomenti
[ @cookie = ] cookie
Specifica il cookie creato al momento dell'attivazione del ruolo applicazione. @cookie è varbinary(8000), senza impostazione predefinita. Il cookie viene creato da sp_setapprole.
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
Attivare un ruolo applicazione con un cookie, quindi ripristinare il contesto precedente
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