Partager via


sp_unsetapprole (Transact-SQL)

S'applique à : SQL Server

Désactive un rôle d'application et revient au contexte de sécurité antérieur.

Conventions de la syntaxe Transact-SQL

Syntaxe

sp_unsetapprole [ @cookie = ] cookie
[ ; ]

Arguments

Spécifie le cookie créé lors de l'activation du rôle d'application. @cookie est varbinary(8000), sans valeur par défaut. Le cookie est créé par sp_setapprole.

Remarque

Le paramètre de cookie OUTPUT pour sp_setapprole lequel il est actuellement documenté sous forme de varbinary(8000) est la longueur maximale correcte. Cependant, l’implémentation actuelle retourne varbinary(50) . Les applications doivent continuer à réserver varbinary(8000) afin que l’application continue de fonctionner correctement si la taille de retour du cookie augmente dans une version ultérieure.

Valeurs des codes de retour

0 (succès) et 1 (échec)

Notes

Une fois qu’un rôle d’application est activé à l’aide sp_setapprole, le rôle reste actif jusqu’à ce que l’utilisateur se déconnecte du serveur ou s’exécute sp_unsetapprole.

Pour obtenir une vue d’ensemble des rôles d’application, consultez Rôles d’application.

autorisations

Nécessite l’appartenance au public et à la connaissance du cookie enregistré lorsque le rôle d’application a été activé.

Exemples

Dans l'exemple ci-dessous, le rôle d'application Sales11 est activé avec le mot de passe fdsd896#gfdbfdkjgh700mM et un cookie est créé. L'exemple retourne le nom de l'utilisateur actuel, puis revient au contexte d'origine en exécutant 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