次の方法で共有


CREATE SERVER AUDIT (Transact-SQL)

SQL Server Audit を使用してサーバーの監査オブジェクトを作成します。詳細については、「SQL Server 監査について」を参照してください。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

CREATE SERVER AUDIT audit_name

    TO { [ FILE (<file_options> [ , ...n ]) ] | APPLICATION_LOG | SECURITY_LOG }
    [ WITH ( <audit_options> [ , ...n ] ) ] 
}
[ ; ]
<file_options>::=
{
       FILEPATH = 'os_file_path'
    [ , MAXSIZE = { max_size { MB | GB | TB } | UNLIMITED } ]
    [ , MAX_ROLLOVER_FILES = { integer | UNLIMITED } ]
    [ , RESERVE_DISK_SPACE = { ON | OFF } ] 
}
  
<audit_options>::=
{
    [  QUEUE_DELAY = integer ]
    [ , ON_FAILURE = { CONTINUE | SHUTDOWN } ]
    [ , AUDIT_GUID = uniqueidentifier ]
}

引数

  • TO {FILE | APPLICATION_LOG | SECURITY}
    監査ターゲットの場所を指定します。バイナリ ファイル、Windows アプリケーション ログ、または Windows セキュリティ ログを指定できます。SQL Server は、Windows で追加の設定を行わないと Windows セキュリティ ログに書き込むことができません。詳細については、「サーバー監査イベントをセキュリティ ログに書き込む方法」を参照してください。

    注意注意

    Windows XP では、セキュリティ ログへの書き込みは実行できません。

  • FILEPATH = 'os_file_path'
    監査ログのパス。ファイル名は、監査名と監査 GUID に基づいて生成されます。

  • MAXSIZE = { max_size }
    監査ファイルのサイズの上限を指定します。max_size の値は、整数の後に MB、GB、TB を付けて指定するか、または UNLIMITED を指定します。max_size に指定できる最小サイズは 2 MB、最大サイズは 2,147,483,647 TB です。UNLIMITED を指定した場合、ファイルはディスクがいっぱいになるまで拡張されます。2 MB 未満の値を指定すると、MSG_MAXSIZE_TOO_SMALL エラーが発生します。既定値は UNLIMITED です。

  • MAX_ROLLOVER_FILES = { integer | UNLIMITED }
    現在のファイルに加えてファイル システム内に保持するファイルの最大数を指定します。MAX_ROLLOVER_FILES 値には整数値または UNLIMITED を指定してください。既定値は UNLIMITED です。監査が再開されるたび (データベース エンジン インスタンスの再起動時や、監査をオフにして再度オンにしたとき)、または MAXSIZE に達して新しいファイルが必要になった場合に、このパラメータが評価されます。MAX_ROLLOVER_FILES の評価時にファイル数が MAX_ROLLOVER_FILES の設定を超えている場合、最も古いファイルが削除されます。そのため、MAX_ROLLOVER_FILES を 0 に設定した場合、MAX_ROLLOVER_FILES 設定が評価されるたびに新しいファイルが作成されます。MAX_ROLLOVER_FILES 設定の評価時に自動的に削除されるファイルは 1 つだけです。したがって、MAX_ROLLOVER_FILES 値を下げても、古いファイルを手動で削除しない限り、ファイル数は少なくなりません。指定できるファイルの最大数は 2,147,483,647 です。

  • RESERVE_DISK_SPACE = { ON | OFF }
    このオプションは、ディスク上のファイルを MAXSIZE 値に事前に割り当てます。MAXSIZE が UNLIMITED でない場合にのみ適用されます。既定値は OFF です。

  • QUEUE_DELAY = integer
    監査アクションの処理が強制されるまでの経過時間 (ミリ秒) を指定します。値 0 は同期配信を表します。クエリ遅延に設定可能な最小値は 1000 (1 秒) で、これが既定値です。最大値は 2,147,483,647 (2,147,483.647 秒、つまり 24 日、20 時間、31 分、23.647 秒) です。無効な数値を指定すると、MSG_INVALID_QUEUE_DELAY エラーが発生します。

  • ON_FAILURE = { CONTINUE | SHUTDOWN }
    ターゲットで書き込みを実行できない場合に、ターゲットへのインスタンスの書き込みを続行するか停止するかを示します。これを発行するログインには、SHUTDOWN 権限が必要です。ログインにこの権限がないと、MSG_NO_SHUTDOWN_PERMISSION メッセージが表示されてこの関数は失敗します。既定値は CONTINUE です。

  • AUDIT_GUID = uniqueidentifier
    監査には、データベース ミラーリングなどのシナリオをサポートするために、ミラーリングされたデータベースで見つかった GUID と照合する特定の GUID が必要です。この GUID は、監査が作成されると変更できなくなります。

説明

作成されたサーバー監査は無効な状態です。

CREATE SERVER AUDIT ステートメントはトランザクションのスコープ内にあります。トランザクションがロールバックされると、ステートメントもロールバックされます。

権限

サーバー監査を作成、変更、または削除する場合、プリンシパルには、ALTER ANY SERVER AUDIT または CONTROL SERVER の権限が必要です。

改ざんを防止するために監査情報をファイルに保存する場合は、そのファイルの場所へのアクセスを制限します。

A. ファイル ターゲットを使用するサーバー監査を作成する

次の例では、バイナリ ファイルをターゲットとする HIPPA_Audit というサーバー監査を、オプションなしで作成します。

CREATE SERVER AUDIT HIPAA_Audit
    TO FILE ( FILEPATH ='\\SQLPROD_1\Audit\' );

B. Windows アプリケーション ログ ターゲットを使用するサーバー監査をオプション付きで作成する

次の例では、Windows アプリケーション ログをターゲット セットとする HIPPA_Audit というサーバー監査を作成します。キューには 1 秒ごとに書き込みが行われ、失敗時はキューによって SQL Server エンジンがシャットダウンされます。

CREATE SERVER AUDIT HIPAA_Audit
    TO APPLICATION_LOG
    WITH ( QUEUE_DELAY = 1000,  ON_FAILURE = SHUTDOWN);

関連項目

参照

概念