ALTER SERVER AUDIT (Transact-SQL)

SQL Server Audit 機能を使用して、SQL Server 監査オブジェクトを変更します。 詳細については、「SQL Server Audit (データベース エンジン)」を参照してください。

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

構文

ALTER SERVER AUDIT audit_name
{
    [ TO { { FILE ( <file_options> [, ...n] ) } | APPLICATION_LOG | SECURITY_LOG } ]
    [ WITH ( <audit_options> [ , ...n] ) ] 
    [ WHERE <predicate_expression> ]
}
| REMOVE WHERE
| MODIFY NAME = new_audit_name
[ ; ]

<file_options>::=
{
      FILEPATH = 'os_file_path' 
    | MAXSIZE = { max_size { MB | GB | TB } | UNLIMITED } 
    | MAX_ROLLOVER_FILES = { integer | UNLIMITED } 
    | MAX_FILES = integer 
    | RESERVE_DISK_SPACE = { ON | OFF } 
}

<audit_options>::=
{
      QUEUE_DELAY = integer 
    | ON_FAILURE = { CONTINUE | SHUTDOWN | FAIL_OPERATION } 
    | STATE = = { ON | OFF } 
}

<predicate_expression>::=
{
    [NOT ] <predicate_factor> 
    [ { AND | OR } [NOT ] { <predicate_factor> } ] 
    [,...n ]
}

<predicate_factor>::= 
    event_field_name { = | < > | ! = | > | > = | < | < = } { number | ' string ' }

引数

  • TO {FILE | APPLICATION_LOG | SECURITY}
    監査ターゲットの場所を指定します。 バイナリ ファイル、Windows アプリケーション ログ、または Windows セキュリティ ログを指定できます。

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

  • MAXSIZE **=**max_size
    監査ファイルのサイズの上限を指定します。 max_size の値は、整数の後に MBGBTB を付けて指定するか、または 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=0 が設定されている場合、作成されるロールオーバー ファイルの数は制限されません。 既定値は 0 です。 指定できるファイルの最大数は 2,147,483,647 です。

  • MAX_FILES =integer
    作成できる監査ファイルの最大数を指定します。 制限に達しても、最初のファイルへのロールオーバーは行われません。 MAX_FILES の制限に達すると、追加の監査イベントを生成させるアクションは失敗し、エラーが発生します。

  • 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 | FAIL_OPERATION}
    SQL Server が監査ログに書き込むことができない場合に、ターゲットへのインスタンスの書き込みをエラーにするか、続行するか、停止するかを示します。

    • CONTINUE
      SQL Server の操作を続行します。 監査レコードは保持されません。 監査はイベントのログ記録を試行し続け、エラー状態が解決されると、記録を再開します。 続行のオプションを選択すると、セキュリティ ポリシーに違反する可能性のある、監査されない活動も許可される場合があります。 完全な監査を維持することより、データベース エンジンの操作を続行することの方が重要である場合に、このオプションを使用します。

    • SHUTDOWN
      監査対象に書き込みを行うサーバー インスタンスが監査対象にデータを書き込むことができない場合に、サーバーを強制的にシャットダウンします。 これを発行するログインには、SHUTDOWN 権限が必要です。 ログオンにこの権限がない場合、この機能は失敗し、エラー メッセージが表示されます。 監査イベントは発生しません。 監査エラーによってシステムのセキュリティまたは整合性が阻害される可能性がある場合に、このオプションを使用します。

    • FAIL_OPERATION
      監査イベントを発生させるデータベース アクションを失敗させます。 監査イベントを発生させないアクションは続行できますが、監査イベントを発生させることはできません。 監査はイベントのログ記録を試行し続け、エラー状態が解決されると、記録を再開します。 データベース エンジンへのフル アクセスより、完全な監査の維持の方が重要である場合に、このオプションを使用します。

  • STATE = { ON | OFF }
    監査によるレコードの収集を有効または無効にします。 実行中の監査の状態を (ON から OFF に) 変更すると、監査が停止されたこと、監査を停止したプリンシパル、および監査が停止された時間を表す監査エントリが作成されます。

  • MODIFY NAME = new_audit_name
    監査の名前を変更します。 他のオプションと組み合わせて使用することはできません。

  • predicate_expression
    イベントを処理する必要があるかどうかを判定するために使用する述語式を指定します。 述語式は 3,000 文字に制限され、これにより文字列引数が制限されます。

  • event_field_name
    述語ソースを識別するイベント フィールドの名前を指定します。 監査フィールドについては、「sys.fn_get_audit_file (Transact-SQL)」で説明されています。 file_name と audit_file_offset 以外のすべてのフィールドは、監査できます。

  • number
    decimal を含む任意の数値型を指定します。 制限として、使用可能な物理メモリの不足、または 64 ビット整数として表すのに大きすぎる数字が挙げられます。

  • ' string '
    述語の比較に必要な ANSI 文字列または Unicode 文字列です。 述語比較関数に対しては、暗黙の文字列型変換は行われません。 無効な型を渡すとエラーになります。

説明

ALTER AUDIT を呼び出すときは、TO 句、WITH 句、MODIFY NAME 句のうち少なくとも 1 つを指定する必要があります。

監査を変更する場合は、監査の状態を OFF オプションに設定する必要があります。 STATE=OFF 以外のオプションを使用して監査を有効にしているときに ALTER AUDIT を実行すると、MSG_NEED_AUDIT_DISABLED エラー メッセージが表示されます。

監査仕様の追加、変更、および削除は、監査を停止せずに実行できます。

監査を作成した後で、監査の GUID を変更することはできません。

権限

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

使用例

A. サーバー監査の名前を変更する

次の例では、サーバー監査 HIPPA_Audit の名前を HIPAA_Audit_Old に変更します。

USE master
GO
ALTER SERVER AUDIT HIPAA_Audit
WITH (STATE = OFF);
GO
ALTER SERVER AUDIT HIPAA_Audit
MODIFY NAME = HIPAA_Audit_Old;
GO
ALTER SERVER AUDIT HIPAA_Audit_Old
WITH (STATE = ON);
GO

B. サーバー監査のターゲットを変更する

次の例では、HIPPA_Audit というサーバー監査を、ファイル ターゲットに変更します。

USE master
GO
ALTER SERVER AUDIT HIPAA_Audit
WITH (STATE = OFF);
GO
ALTER SERVER AUDIT HIPAA_Audit
TO FILE (FILEPATH ='\\SQLPROD_1\Audit\',
          MAXSIZE = 1000 MB,
          RESERVE_DISK_SPACE=OFF)
WITH (QUEUE_DELAY = 1000,
       ON_FAILURE = CONTINUE);
GO
ALTER SERVER AUDIT HIPAA_Audit
WITH (STATE = ON);
GO

C. サーバー監査 WHERE 句を変更する

次の例は、「CREATE SERVER AUDIT (Transact-SQL)」の例 C で作成した WHERE 句を変更します。 新しい WHERE 句は、ユーザー定義イベントを 27 でフィルター選択します。

ALTER SERVER AUDIT [FilterForSensitiveData] WITH (STATE = OFF)
GO
ALTER SERVER AUDIT [FilterForSensitiveData]
WHERE user_defined_event_id = 27;
GO
ALTER SERVER AUDIT [FilterForSensitiveData] WITH (STATE = ON);
GO

D. WHERE 句を削除する

次の例では、WHERE 句の述語式を削除します。

ALTER SERVER AUDIT [FilterForSensitiveData] WITH (STATE = OFF)
GO
ALTER SERVER AUDIT [FilterForSensitiveData]
REMOVE WHERE;
GO
ALTER SERVER AUDIT [FilterForSensitiveData] WITH (STATE = ON);
GO

E. サーバー監査の名前を変更する

次の例では、サーバー監査の名前を FilterForSensitiveData から AuditDataAccess に変更します。

ALTER SERVER AUDIT [FilterForSensitiveData] WITH (STATE = OFF)
GO
ALTER SERVER AUDIT [FilterForSensitiveData]
MODIFY NAME = AuditDataAccess;
GO
ALTER SERVER AUDIT [AuditDataAccess] WITH (STATE = ON);
GO

関連項目

参照

DROP SERVER AUDIT (Transact-SQL)

CREATE SERVER AUDIT SPECIFICATION (Transact-SQL)

ALTER SERVER AUDIT SPECIFICATION (Transact-SQL)

DROP SERVER AUDIT SPECIFICATION (Transact-SQL)

CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)

ALTER DATABASE AUDIT SPECIFICATION (Transact-SQL)

DROP DATABASE AUDIT SPECIFICATION (Transact-SQL)

ALTER AUTHORIZATION (Transact-SQL)

sys.fn_get_audit_file (Transact-SQL)

sys.server_audits (Transact-SQL)

sys.server_file_audits (Transact-SQL)

sys.server_audit_specifications (Transact-SQL)

sys.server_audit_specification_details (Transact-SQL)

sys.database_audit_specifications (Transact-SQL)

sys.database_audit_specification_details (Transact-SQL)

sys.dm_server_audit_status (Transact-SQL)

sys.dm_audit_actions (Transact-SQL)

概念

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