次の方法で共有


SQL Server Profiler を実行するために必要なアクセス許可

適用対象:SQL ServerAzure SQL Managed Instance

既定では、SQL Server Profiler の実行には、トレースの作成に使用した Transact-SQL ストアド プロシージャと同じユーザー アクセス許可が必要です。 SQL Server Profiler を実行するには、ユーザーに ALTER TRACE アクセス許可が付与されている必要があります。 詳細については、「 GRANT サーバーのアクセス許可」を参照してください。

SQL トレースと SQL Server プロファイラー は、非推奨です。 Microsoft SQL Server トレース オブジェクトと再生オブジェクトを含む Microsoft.SqlServer.Management.Trace 名前空間も非推奨です。

この機能は、 SQL Serverの将来のバージョンで削除される予定です。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。

代わりに拡張イベントを使用します。 拡張イベントの概要の詳細については、「クイック スタート: 拡張イベント」および「SSMS XEvent Profiler を使用する」を参照してください。

注釈

  • SQL トレースによってキャプチャされたクエリ プランとクエリ テキスト、およびその他の方法 (動的管理ビュー (DMV)、動的管理機能 (DMF)、拡張イベントなど) には、機密情報を含めることができます。 そのため、ALTER TRACESHOWPLAN、およびカバーするアクセス許可VIEW SERVER STATEは、最小限の特権の原則に基づき、これらのアクセス許可が仕事の機能を果たすために必要なユーザーにのみ付与されるべきです。

    また、プラン表示ファイルまたはプラン表示関連のイベントを含むトレース ファイルのみを保存すること、保存先は NTFS ファイル システムが使用されている場所とすること、および機密の可能性がある情報を表示する権限を持つユーザーのみにアクセスを制限することをお勧めします。

  • SQL Server プロファイラー for Analysis Services のワークロードがサポートされています。

  • SQL Server Profiler から Azure SQL Database に接続しようとすると、誤解を招くエラーメッセージが表示されます。

    In order to run a trace against SQL Server, you must be a member of **sysadmin** fixed server role or have the ALTER TRACE permission.
    

    このメッセージは、Azure SQL Database が SQL Server Profiler でサポートされていないことを示している必要があります。

トレースの再生に使用されるアクセス許可

トレースを再生するには、トレースを再生しているユーザーに ALTER TRACE アクセス許可が必要です。

ただし、再生中に、SQL Server Profiler は、再生中のトレースで Audit Login イベントが発生した場合に、 EXECUTE AS コマンドを使用します。 SQL Server Profiler では、 EXECUTE AS コマンドを使用して、ログイン イベントに関連付けられているユーザーを偽装します。

SQL Server Profiler によって再生されるトレース内でログイン イベントが検出されると、次の権限のチェックが実行されます。

  1. User1は、ALTER TRACEのアクセス許可を持つユーザーとして、トレースの再生を開始します。

  2. 再生されたトレースで、 User2 のログイン イベントが発生しました。

  3. SQL Server Profiler では、 EXECUTE AS コマンドを使用して User2を偽装します。

  4. SQL Server は User2の認証を試み、結果に応じて、次のいずれかが発生します。

    1. User2認証できない場合、SQL Server Profiler はエラーを返し、トレースをUser1として再生し続けます。

    2. User2が正常に認証されると、User2としてトレースを再生し続けます。

  5. ターゲット データベースで User2 のアクセス許可がチェックされ、結果に応じて、次のいずれかのシナリオが発生します。

    1. User2ターゲット データベースに対するアクセス許可がある場合、偽装は成功し、トレースはUser2として再生されます。

    2. User2ターゲット データベースに対するアクセス許可がない場合、サーバーはそのデータベースでGuestユーザーをチェックします。

  6. ターゲット データベースで Guest ユーザーの存在が確認され、結果に応じて、次のいずれかが発生します。

    1. Guest アカウントが存在する場合、トレースはGuest アカウントとして再生されます。

    2. ターゲット データベースに Guest アカウントが存在しない場合は、エラーが返され、トレースが User1として再生されます。

次の図に、トレース再生時の権限のチェック プロセスを示します。

SQL Server Profiler の再生トレースのアクセス許可のスクリーンショット。