サーバー監査の仕様およびデータベース監査の仕様を作成する方法

このトピックでは、SQL Server Management Studio または Transact-SQL を使用して、SQL Server 2012 でサーバー監査とデータベース監査の仕様を作成する方法について説明します。

SQL Server のインスタンスや SQL Server データベースの監査では、システムで発生するイベントの追跡およびログ記録が行われます。 SQL Server 監査オブジェクトは、監視するサーバー レベルまたはデータベース レベルのアクションおよびアクションのグループの 1 つのインスタンスを収集します。 監査は SQL Server インスタンス レベルで行われます。 SQL Server のインスタンスごとに複数の監査を使用できます。 データベース レベルの監査の仕様オブジェクトも、監査に属しています。 各監査では、SQL Server データベースごとに 1 つのデータベース監査の仕様を作成できます。 詳細については、「SQL Server Audit (データベース エンジン)」を参照してください。

このトピックの内容

  • 作業を開始する準備:

    制限事項と制約事項

    セキュリティ

  • サーバー監査とデータベース監査の仕様を作成する方法:

    SQL Server Management Studio

    Transact-SQL

作業を開始する準備

制限事項と制約事項

データベース監査仕様は、セキュリティ保護できないオブジェクトであり、特定のデータベースに保存されます。 作成されたデータベース監査仕様は無効な状態です。

ユーザー データベースでデータベース監査の仕様を作成または変更するときは、システム ビューなど、サーバー スコープ オブジェクトの監査アクションは含めないでください。 サーバー スコープ オブジェクトが含まれている場合、監査が作成されます。 ただし、サーバー スコープ オブジェクトは対象にならず、エラーは返されません。 サーバー スコープ オブジェクトを監査するには、master データベースのデータベース監査の仕様を使用してください。

tempdb システム データベースを除き、データベース監査の仕様は、その仕様が作成されるデータベースに存在します。

セキュリティ

権限

  • ALTER ANY DATABASE AUDIT 権限を持つユーザーは、データベース監査仕様を作成し、任意の監査にバインドできます。

  • データベース監査仕様の作成後は、CONTROL SERVER 権限または ALTER ANY DATABASE AUDIT 権限を持つプリンシパル、または sysadmin アカウントのプリンシパルがその仕様を表示できます。

[トップに戻る] リンクで使用される矢印アイコン[Top]

SQL Server Management Studio の使用

サーバー監査を作成するには

  1. オブジェクト エクスプローラーで、[セキュリティ] フォルダーを展開します。

  2. [監査] フォルダーを右クリックし、[新しい監査] をクリックします。 詳細については、「サーバー監査およびサーバー監査の仕様を作成する方法」を参照してください。

  3. オプションの選択が完了したら、[OK] をクリックします。

データベース レベルの監査仕様を作成するには

  1. オブジェクト エクスプローラーで、監査仕様を作成するデータベースを展開します。

  2. [セキュリティ] フォルダーを展開します。

  3. [データベース監査の仕様] フォルダーを右クリックし、[新しいデータベース監査の仕様] をクリックします。

    [データベース監査の仕様の作成] ダイアログ ボックスでは、次のオプションを使用できます。

    • 名前
      データベース監査の仕様の名前。 この名前は、新しいサーバー監査の仕様を作成すると自動的に生成されますが、編集可能です。

    • [監査]
      既存のデータベース監査の名前。 監査の名前を入力するか、一覧から選択します。

    • [監査アクションの種類]
      キャプチャするデータベース レベルの監査アクション グループと監査アクションを指定します。 データベース レベルの監査アクション グループと監査アクションの一覧、およびそれらに含まれるイベントの説明については、「SQL Server 監査のアクション グループとアクション」を参照してください。

    • [オブジェクト スキーマ]
      指定した [オブジェクト名] のスキーマを表示します。

    • [オブジェクト名]
      監査するオブジェクトの名前。 これは監査アクションにのみ使用できます。監査グループには適用されません。

    • 省略記号 […]
      指定した [監査アクションの種類] に基づいて、使用可能なオブジェクトを参照して選択するための [オブジェクトの選択] ダイアログ ボックスを開きます。

    • [プリンシパル名]
      監査対象のオブジェクトで監査をフィルター選択するためのアカウント。

    • 省略記号 […]
      指定した [オブジェクト名] に基づいて、使用可能なオブジェクトを参照して選択するための [オブジェクトの選択] ダイアログ ボックスを開きます。

  4. オプションの選択が完了したら、[OK] をクリックします。

[トップに戻る] リンクで使用される矢印アイコン[Top]

Transact-SQL の使用

サーバー監査を作成するには

  1. オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続します。

  2. [標準] ツール バーの [新しいクエリ] をクリックします。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、[実行] をクリックします。

    USE master ;
    GO
    -- Create the server audit. 
    CREATE SERVER AUDIT Payrole_Security_Audit
        TO FILE ( FILEPATH = 
    'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA' ) ; 
    GO
    -- Enable the server audit. 
    ALTER SERVER AUDIT Payrole_Security_Audit 
    WITH (STATE = ON) ;
    

データベース レベルの監査仕様を作成するには

  1. オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続します。

  2. [標準] ツール バーの [新しいクエリ] をクリックします。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、[実行] をクリックします。 この例では、HumanResources.EmployeePayHistory テーブルに対する dbo ユーザーによる SELECT ステートメントと INSERT ステートメントを、定義済みのサーバー監査に基づいて監査する Audit_Pay_Tables という名前のデータベース監査仕様を作成します。

    USE AdventureWorks2012 ; 
    GO
    -- Create the database audit specification. 
    CREATE DATABASE AUDIT SPECIFICATION Audit_Pay_Tables
    FOR SERVER AUDIT Payrole_Security_Audit
    ADD (SELECT , INSERT
         ON HumanResources.EmployeePayHistory BY dbo ) 
    WITH (STATE = ON) ; 
    GO
    

詳細については、「CREATE SERVER AUDIT (Transact-SQL)」および「CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)」を参照してください。

[トップに戻る] リンクで使用される矢印アイコン[Top]