sp_unsetapprole (Transact-SQL)
Gilt für:SQL Server
Deaktiviert eine Anwendungsrolle und setzt den Sicherheitskontext auf den vorherigen Kontext zurück.
Transact-SQL-Syntaxkonventionen
Syntax
sp_unsetapprole [ @cookie = ] cookie
[ ; ]
Argumente
[ @cookie = ] Cookie
Gibt das Cookie an, das beim Aktivieren der Anwendungsrolle erstellt wurde. @cookie ist varbinary(8000), ohne Standard. Das Cookie wird durch sp_setapprole (Transact-SQL) erstellt.
Hinweis
Der Cookie-Parameter OUTPUT
für sp_setapprole
ist derzeit als varbinary(8000) dokumentiert, bei dem es sich um die richtige maximale Länge handelt. Die aktuelle Implementierung gibt jedoch varbinary(50) zurück. Anwendungen müssen weiterhin varbinary(8000) reservieren, damit die Anwendung weiterhin ordnungsgemäß ausgeführt wird, falls die Rückgabegröße des Cookies in einer zukünftigen Version erhöht wird.
Rückgabecodewerte
0 (Erfolg) oder 1 (Fehler)
Hinweise
Nachdem eine Anwendungsrolle mithilfe sp_setapprole
aktiviert wurde, wird die Rolle erneut Standard aktiv, bis der Benutzer entweder die Verbindung vom Server trennt oder ausgeführt wirdsp_unsetapprole
.
Eine Übersicht über Anwendungsrollen finden Sie unter Application Roles.
Berechtigungen
Erfordert die Mitgliedschaft in public und die Kenntnis des Cookies, das beim Aktivieren der Anwendungsrolle erstellt wurde.
Beispiele
Aktivieren einer Anwendungsrolle mit einem Cookie und dann rückgängig machen zum vorherigen Kontext
Im folgenden Beispiel wird die Sales11
-Anwendungsrolle mit dem Kennwort fdsd896#gfdbfdkjgh700mM
aktiviert, und es wird ein Cookie erstellt. Im Beispiel wird der Name des aktuellen Benutzers zurückgegeben, und der Kontext wird anschließend durch Ausführen von sp_unsetapprole
auf den ursprünglichen Kontext zurückgesetzt.
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
Siehe auch
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Tickets als Feedbackmechanismus für Inhalte auslaufen lassen und es durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter:Einreichen und Feedback anzeigen für