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

適用対象:SQL Server

この記事では、SQL Server Management Studio または Transact-SQL を使用して、SQL Server でサーバー監査およびデータベース監査仕様を作成する方法について説明します。

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

開始する前に

制限事項と制約事項

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

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

TempDB システム データベースを除いて、データベース監査の仕様は、それが作成されたデータベース内にあります。

セキュリティ

アクセス許可

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

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

SQL Server Management Studio を使用する

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

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

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

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

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

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

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

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

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

    Name
    データベース監査の仕様の名前。 サーバー監査の使用を作成する場合、名前は自動的に生成されます。 名前は編集できます。

    監査
    既存のサーバー監査オブジェクトの名前。 監査の名前を入力するか、一覧から選択します。

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

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

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

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

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

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

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

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\MSSQL13.MSSQLSERVER\MSSQL\DATA' ) ;   
    GO  
    -- Enable the server audit.   
    ALTER SERVER AUDIT Payrole_Security_Audit   
    WITH (STATE = ON) ;  
    

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

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

  2. 標準バーで、 [新しいクエリ] を選択します。

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

    USE AdventureWorks2022;   
    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)」を参照してください。