1

ユーザーが SysAdmin ロールに属しているか、VIEW SERVER STATE を付与されていない場合に、接続の IP アドレスを取得する方法はありますか? このクエリを発行するには、次のいずれかが必要です。

select client_net_address from sys.dm_exec_connections where session_id = @@spid

代わりのトリガー内で IP アドレスをログに記録したいのですが、すべてのユーザーに VIEW SERVER STATE 権限を付与したくありません。

提案をありがとう。


フォローアップ 2013-10-05: さまざまなコメントをありがとう。すべてのユーザーに VIEW SERVER STATE を許可することの危険性は何ですか?

4

2 に答える 2

-1
CREATE PROCEDURE Some_Proc
WITH EXECUTE AS 'User_With_Permission'
AS
BEGIN 
    SET NOCOUNT ON;
        select client_net_address from sys.dm_exec_connections where session_id = @@spid
END

トリガーからこのプロシージャを呼び出します

于 2013-10-04T22:01:32.170 に答える