Windows7ボックスでSQLServer2008R2を使用しています。SQLコマンドを実行するためのストアドプロシージャを作成しましたEXECUTE AS USER
。
CREATE PROCEDURE dbo.ImpersonateUser
AS
BEGIN
EXECUTE AS USER = 'UserName';
END
次に、ユーザーになりすましているかどうかを確認しようとしています...
PRINT CURRENT_USER;
EXEC ImpersonateUser;
PRINT CURRENT_USER
...そして結果は...
dbo
dbo
...私がそれをしたいとき...
dbo
UserName
もちろん、これは機能しません。これは、EXECUTE AS USER
ステートメントがストアドプロシージャ内でのみ有効であるためですImpersonateUser
。 私の質問はこれです:ストアドプロシージャImpersonateUser
が呼び出し元のコンテキスト(セッション)に影響を与える可能性はありますか?ストアドプロシージャに他のロジックをカプセル化(および非表示)したい。