Поделиться через


sp_unsetapprole (Transact-SQL)

Деактивирует роль приложения и возвращает к предыдущему контексту безопасности.

Применимо для следующих объектов: SQL Server (начиная с SQL Server 2008 до текущей версии).

Значок ссылки на раздел Синтаксические обозначения в Transact-SQL

Синтаксис

sp_unsetapprole @cookie 

Аргументы

  • @cookie
    Указывает куки-файл, который был создан при активации роли приложения. Куки-файл создается с помощью sp_setapprole (Transact-SQL). varbinary(8000).

    Примечание

    Параметр OUTPUT куки-файла для sp_setapprole в настоящее время описан в документации как varbinary(8000), что верно определяет его максимальную длину.Однако текущая реализация возвращает varbinary(50).Дальнейшее резервирование varbinary(8000) в приложениях необходимо для обеспечения правильного продолжения работы в случае увеличения размера куки-файлов в последующих выпусках.

Значения кода возврата

0 (успешное завершение) и 1 (неуспешное завершение)

Замечания

После активации роли приложения с помощью процедуры sp_setapprole роль остается активной до тех пор, пока пользователь либо отсоединится от сервера, либо выполнит процедуру sp_unsetapprole.

Обзор ролей приложения см. в разделе Роли приложений.

Разрешения

Необходимо членство в роли public и знание куки-файла, сохраненного при активации роли приложения.

Примеры

Активация роли приложения с помощью куки-файла, затем возврат к предыдущему контексту.

В следующем примере включается роль приложения Sales11 с паролем fdsd896#gfdbfdkjgh700mM и создается куки-файл. В примере возвращается имя текущего пользователя, после чего происходит возврат к исходному контексту с помощью выполнения процедуры 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();
-- This will 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
SELECT USER_NAME();
-- This will return the name of the original user. 
GO 

См. также

Справочник

sp_setapprole (Transact-SQL)

Системные хранимые процедуры (Transact-SQL)

Хранимые процедуры безопасности (Transact-SQL)

CREATE APPLICATION ROLE (Transact-SQL)

DROP APPLICATION ROLE (Transact-SQL)