SQL Server Profiler の実行に必要な権限
既定では、SQL Server Profiler の実行には、トレースの作成に使用した Transact-SQL ストアド プロシージャと同じユーザー権限が必要です。SQL Server Profiler を実行するには、ユーザーに ALTER TRACE アクセス権を許可する必要があります。詳細については、「GRANT (サーバーの権限の許可) (Transact-SQL)」を参照してください。
重要 |
---|
SHOWPLAN 権限、ALTER TRACE 権限、または VIEW SERVER STATE 権限を持つユーザーは、プラン表示出力にキャプチャされたクエリを表示できます。これらのクエリには、パスワードなどの機密情報が含まれている場合があります。したがって、これらの権限は、機密情報を表示することが認められているユーザー (たとえば db_owner 固定データベース ロールのメンバーや sysadmin 固定サーバー ロールのメンバー) のみに付与することをお勧めします。また、プラン表示ファイルまたはプラン表示関連のイベントを含むトレース ファイルのみを保存すること、保存先は NTFS ファイル システムが使用されている場所とすること、および機密情報を表示する権限を持つユーザーのみにアクセスを制限することをお勧めします。 |
トレースの再生に使用される権限
トレースを再生するには、トレースを再生するユーザーに ALTER TRACE 権限が許可されている必要があります。
ただし、再生中に、再生されるトレース内で Audit Login イベントが検出されると、SQL Server Profiler によって EXECUTE AS コマンドが使用されます。ログイン イベントに関連付けられたユーザーの権限を借用するために、SQL Server Profiler によって EXECUTE AS コマンドが使用されます。
SQL Server Profiler によって再生されるトレース内でログイン イベントが検出されると、次の権限のチェックが実行されます。
ALTER TRACE 権限のある User1 が、トレースの再生を開始します。
再生されるトレースで、User2 のログイン イベントが検出されます。
User2 の権限を借用するために、SQL Server Profiler によって EXECUTE AS コマンドが使用されます。
SQL Server は User2 の認証を試みます。認証の結果に応じて、次のいずれかが行われます。
User2 を認証できない場合、SQL Server Profiler はエラーを返し、User1 としてトレースの再生を続行します。
User2 を正しく認証できた場合、User2 としてのトレースの再生を続行します。
対象のデータベースで User2 の権限がチェックされます。チェックの結果に応じて、次のいずれかが行われます。
User2 が対象のデータベースに権限を所持している場合、権限の借用に成功し、User2 としてトレースが再生されます。
User2 が対象のデータベースに権限を所持していない場合、サーバーではそのデータベースの Guest ユーザーがチェックされます。
対象のデータベースに Guest ユーザーが存在するかどうかがチェックされます。チェックの結果に応じて、次のいずれかが行われます。
Guest アカウントが存在する場合、Guest アカウントとしてトレースが再生されます。
対象のデータベースに Guest アカウントが存在しない場合、エラーが返され、User1 としてトレースが再生されます。
次の図に、トレース再生時の権限のチェック プロセスを示します。