ユーザーにアクセス許可を与えずに、.trc ファイルから SQL Server トレース データを表示できるようにしようとしていますALTER TRACE
(SQL Server 2008 R2)。そのため、sysadmin アカウントを使用してストアド プロシージャにまとめました。
CREATE PROCEDURE test_trace
as
SELECT * FROM FN_TRACE_GETTABLE(N'C:\temp\trace1.trc', 1)
sysadmin アカウントを使用してこのストアド プロシージャを実行すると、正常に動作します。これを domain1\user1 アカウントで実行しようとすると、エラーが発生して実行されません"You do not have permission to run 'FN_TRACE_GETTABLE'"
。これはまた予想です。
ストアド プロシージャを実行したいdomain1\user1
ので、sysadmin アカウントで実行するようにストアド プロシージャを変更します。
CREATE PROCEDURE test_trace
WITH EXECUTE AS 'domain1\sysadmin1'
as
SELECT * FROM FN_TRACE_GETTABLE(N'C:\temp\trace1.trc', 1)
ストアド プロシージャを実行する"You do not have permission to run 'FN_TRACE_GETTABLE'"
と、実行するアカウントに関係なく取得されます。domain1\user1
とdomain1\sysadmin1
アカウントの両方で実行できると思っていました。
誰かが私が逃したものを手伝ってくれませんか? 私の目標は、アクセス許可 を与えずdomain1\user1
にファイルを読み取れるようにすることです。trace1.trc
ALTER TRACE