Dela via


sp_unsetapprole (Transact-SQL)

gäller för:SQL Server

Inaktiverar en programroll och återgår till den tidigare säkerhetskontexten.

Transact-SQL syntaxkonventioner

Syntax

sp_unsetapprole [ @cookie = ] cookie
[ ; ]

Argumentpunkter

Anger den cookie som skapades när programrollen aktiverades. @cookie är varbinary(8000), utan standard. Cookien skapas av sp_setapprole.

Anmärkning

Cookieparametern OUTPUT för dokumenteras för sp_setapprole närvarande som varbinary(8000) som är rätt maximal längd. Den aktuella implementeringen returnerar dock varbinary(50). Program bör fortsätta att reservera varbinary(8000) så att programmet fortsätter att fungera korrekt om cookiens returstorlek ökar i en framtida version.

Returnera kodvärden

0 (lyckades) och 1 (fel)

Anmärkningar

När en programroll har aktiverats med hjälp sp_setapproleav förblir rollen aktiv tills användaren antingen kopplar från servern eller kör sp_unsetapprole.

En översikt över programroller finns i Programroller.

Behörigheter

Kräver medlemskap offentligt och kunskap om cookien som sparades när programrollen aktiverades.

Exempel

I följande exempel aktiveras programrollen Sales11 och en cookie skapas. Exemplet returnerar namnet på den aktuella användaren och återgår sedan till den ursprungliga kontexten genom att sp_unsetapproleköra . Ersätt <password> med ett starkt lösenord.

DECLARE @cookie AS VARBINARY (8000);

EXECUTE sp_setapprole 'Sales11',
    '<password>',
    @fCreateCookie = true,
    @cookie = @cookie OUTPUT;

-- The application role is now active.
SELECT USER_NAME();

-- Return the name of the application role, Sales11.
EXECUTE 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