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


sp_unsetapprole (Transact-SQL)

Область применения: SQL Server

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

Соглашения о синтаксисе Transact-SQL

Синтаксис

sp_unsetapprole [ @cookie = ] cookie
[ ; ]

Аргументы

Указывает куки-файл, который был создан при активации роли приложения. @cookie — varbinary(8000), без значения по умолчанию. Файл cookie создается sp_setapprole.

Примечание.

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

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

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

Замечания

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

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

Разрешения

Требуется членство в общедоступной среде и знания файла cookie, сохраненного при активации роли приложения.

Примеры

В следующем примере включается роль приложения 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();

-- 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