0

管理者権限を持つ 1 人のユーザーとしてストアド プロシージャを作成し、

WITH EXECUTE AS SELF 

次に、特権を持たないユーザーでストアド プロシージャを実行しようとしており、管理者であるユーザーになりすまそうとしています。

しかし、ユーザーには一括読み込みを使用する権限がないというエラーが返されます。

とにかくこれを丸めますか?

4

2 に答える 2

0

管理者ユーザーがprocを実行できると思いましたよね?

通話の様子を教えていただけますか?

EXECUTE AS USER = 'user_with_permission'EXECUTE AS SELFは、procを呼び出すユーザーとして実行することを意味するため、procを呼び出す前に次のようなことを行う必要があります。

于 2012-04-12T10:56:06.843 に答える
0

このクエリを使用して、プロシージャの "self" であるプリンシパルの ID を見つけることができます。

select  execute_as_principal_id 
from    sys.sql_modules 
where   object_id = object_id('YourProcedureName')

私にとっては、nullほとんどの場合、それはうまくいかないようです。代わりにこれを試してください:

WITH EXECUTE AS 'UserWhoHasAdminRights'

または DBO として実行するには:

WITH EXECUTE AS OWNER
于 2012-04-12T10:52:36.957 に答える