このセクションでは、監査ログプラグインの操作を制御するコマンドオプションおよびシステム変数について説明します。起動時に指定された値が正しくない場合は、プラグインが正常に初期化できない可能性があり、サーバーでロードされません。この場合、サーバーでその他の監査ログ設定が認識されないため、それに関するエラーメッセージが生成される可能性もあります。
audit_log
プラグインのアクティブ化を制御するには、次のオプションを使用します。
-
コマンド行形式 --audit-log[=value]
導入 5.6.10 型 列挙 デフォルト ON
有効な値 ON
OFF
FORCE
FORCE_PLUS_PERMANENT
このオプションは、サーバーの起動時に
audit_log
プラグインをロードする方法を制御します。これは、監査ログプラグインが事前にINSTALL PLUGIN
に登録されている場合や、--plugin-load
を使用してロードされている場合にのみ指定可能です。セクション6.3.12.1「監査ログプラグインのインストール」を参照してください。セクション5.1.8.1「プラグインのインストールおよびアンインストール」で説明したように、オプションの値は、プラグインのロードオプションに指定可能な値のいずれかである必要があります。たとえば、
--audit-log=FORCE_PLUS_PERMANENT
は、プラグインをロードし、それがサーバーの実行時に削除されることを回避するようにサーバーに指示します。このオプションは MySQL 5.6.10 で追加されました。
audit_log
プラグインがインストールされている場合は、ロギングに対する制御を許可する複数のシステム変数が表示されます。これらの変数は、audit_log
プラグインが有効になっている場合にのみ指定可能です。
mysql> SHOW VARIABLES LIKE 'audit_log%';
+-----------------------------+--------------+
| Variable_name | Value |
+-----------------------------+--------------+
| audit_log_buffer_size | 1048576 |
| audit_log_connection_policy | ALL |
| audit_log_current_session | ON |
| audit_log_exclude_accounts | |
| audit_log_file | audit.log |
| audit_log_flush | OFF |
| audit_log_format | OLD |
| audit_log_include_accounts | |
| audit_log_policy | ALL |
| audit_log_rotate_on_size | 0 |
| audit_log_statement_policy | ALL |
| audit_log_strategy | ASYNCHRONOUS |
+-----------------------------+--------------+
これらの変数のいずれも、サーバーの起動時 (一部は実行時) に設定できます。
-
コマンド行形式 --audit-log-buffer-size=value
導入 5.6.10 システム変数 audit_log_buffer_size
スコープ グローバル 動的 いいえ 型 数値 デフォルト 1048576
最小値 4096
最大値 (64 ビットプラットフォーム) 18446744073709547520
最大値 (32 ビットプラットフォーム) 4294967295
監査ログプラグインが非同期的にイベントをログに書き込むと、イベントの内容を書き込む前に、バッファーを使用してそれらを格納します。この変数は、そのバッファーのサイズ (バイト単位) を制御します。サーバーは、この値を 4096 の倍数に調整します。このプラグインでは、初期化時に割り当てられ、終了時に削除される単一のバッファーが使用されます。このプラグインは、ロギングが非同期の場合にのみ、このバッファーを割り当てます。
この変数は MySQL 5.6.10 で追加されました。
-
コマンド行形式 --audit-log-connection-policy=value
導入 5.6.20 システム変数 audit_log_connection_policy
スコープ グローバル 動的 はい 型 列挙 デフォルト ALL
有効な値 ALL
ERRORS
NONE
監査ログプラグインが接続イベントをそのログファイルに書き込む方法を制御するポリシーです。次の表は、許可される値を示しています。
値 説明 ALL
接続イベントのログをすべて記録します ERRORS
失敗した接続イベントのログのみを記録します NONE
接続イベントのログを記録しません 注記セクション6.3.12.4「監査ログプラグインのロギング制御」で説明したように、
audit_log_policy
も指定されている場合は、サーバーの起動時に、audit_log_connection_policy
に明示的に指定された値がオーバーライドされる可能性があります。この変数は、MySQL 5.6.20 で追加されました。
-
導入 5.6.20 システム変数 audit_log_current_session
スコープ グローバル、セッション 動的 いいえ 型 ブール デフォルト depends on filtering policy
現在のセッションで監査ロギングが有効になっているかどうかを示します。この変数のセッションの値は、読み取り専用です。セッションの開始時に、
audit_log_include_accounts
およびaudit_log_exclude_accounts
システム変数の値に基づいて設定されます。監査ログプラグインはこのセッション値を使用して、そのセッションでイベントを監査するかどうかを決定します。(グローバル値もありますが、このプラグインでは使用されません。)この変数は、MySQL 5.6.20 で追加されました。
-
コマンド行形式 --audit-log-exclude-accounts=value
導入 5.6.20 システム変数 audit_log_exclude_accounts
スコープ グローバル 動的 はい 型 文字列 デフォルト NULL
イベントのログが記録されないアカウント。この値には、
NULL
またはカンマで区切った 1 つ以上のアカウント名のリストを含む文字列を指定するようにしてください。詳細については、セクション6.3.12.4「監査ログプラグインのロギング制御」を参照してください。この変数は、MySQL 5.6.20 で追加されました。
-
コマンド行形式 --audit-log-file=file_name
導入 5.6.10 システム変数 audit_log_file
スコープ グローバル 動的 いいえ 型 ファイル名 デフォルト audit.log
監査ログプラグインがイベントを書き込むファイルの名前。デフォルト値は
audit.log
です。ファイル名が相対パスの場合、サーバーはデータディレクトリに相対的なパスであると解釈します。セキュリティー上の理由から、監査ログファイルは、MySQL サーバーおよびログを表示する正当な理由を持つユーザーにのみアクセス可能なディレクトリに書き込まれるべきです。この変数は MySQL 5.6.10 で追加されました。
-
導入 5.6.10 システム変数 audit_log_flush
スコープ グローバル 動的 はい 型 ブール デフォルト OFF
この変数が有効になるよう (1 または
ON
) に設定されている場合、監査ログプラグインはそのログファイルを閉じてから再度開いて、フラッシュします。(この値は、別のフラッシュを実行するために再度有効にする前に、明示的に無効にする必要がないように、OFF
のままになっています。)audit_log_rotate_on_size
が 0 である場合を除いて、この変数を有効にしても効果はありません。この変数は MySQL 5.6.10 で追加されました。
-
コマンド行形式 --audit-log-format=value
導入 5.6.14 システム変数 audit_log_format
スコープ グローバル 動的 いいえ 型 列挙 デフォルト OLD
有効な値 OLD
NEW
監査ログファイルの形式。許可されている値は、
OLD
およびNEW
(デフォルトはOLD
) です。各形式についての詳細は、セクション6.3.12.3「監査ログファイル」を参照してください。audit_log_format
の値を変更する場合は、次の手順を使用して、ある形式のログエントリが別の形式のエントリを含む既存のログファイルに書き込まれることを回避します。サーバーを停止します。
現在の監査ログファイルの名前を手動で変更します。
新しい
audit_log_format
の値でサーバーを再起動します。監査ログプラグインによって、選択した形式のログエントリを含む新しいログファイルが作成されます。
この変数は、MySQL 5.6.14 で追加されました。
-
コマンド行形式 --audit-log-include-accounts=value
導入 5.6.20 システム変数 audit_log_include_accounts
スコープ グローバル 動的 はい 型 文字列 デフォルト NULL
イベントのログが記録されるアカウント。この値には、
NULL
またはカンマで区切った 1 つ以上のアカウント名のリストを含む文字列を指定するようにしてください。詳細については、セクション6.3.12.4「監査ログプラグインのロギング制御」を参照してください。この変数は、MySQL 5.6.20 で追加されました。
-
コマンド行形式 --audit-log-policy=value
導入 5.6.10 システム変数 audit_log_policy
スコープ グローバル 動的 (≥ 5.6.20) いいえ 動的 (≤ 5.6.19) はい 型 列挙 デフォルト ALL
有効な値 ALL
LOGINS
QUERIES
NONE
監査ログプラグインがイベントをそのログファイルに書き込む方法を制御するポリシーです。次の表は、許可される値を示しています。
値 説明 ALL
イベントのログをすべて記録します LOGINS
ログインイベントのログのみを記録します QUERIES
クエリーイベントのログのみを記録します NONE
ログを何も記録しません (監査ストリームを無効にします) MySQL 5.6.20 の時点で、
audit_log_policy
はサーバーの起動時にしか設定できません。実行時は、読み取り専用の変数です。これは、より詳細にロギングポリシーを制御し、起動時または実行時に設定できるその他の 2 つのシステム変数 (audit_log_connection_policy
とaudit_log_statement_policy
) が導入されたためです。その他の 2 つの変数の代わりに、起動時にaudit_log_policy
を使用し続けると、サーバーはその値を使用して、これらの変数を設定します。ポリシーの変数とそれらの相互作用についての詳細は、セクション6.3.12.4「監査ログプラグインのロギング制御」を参照してください。MySQL 5.6.20 よりも前では、
audit_log_connection_policy
およびaudit_log_statement_policy
システム変数が存在しません。audit_log_policy
は、唯一のポリシー制御の変数であり、サーバーの起動時または実行時に設定できます。この変数は MySQL 5.6.10 で追加されました。
-
コマンド行形式 --audit-log-rotate-on-size=N
導入 5.6.10 システム変数 audit_log_rotate_on_size
スコープ グローバル 動的 はい 型 数値 デフォルト 0
audit_log_rotate_on_size
値を 0 よりも大きくした場合は、ファイルへの書き込みによってそのサイズがこの値を超えると、監査ログプラグインはそのログファイルを閉じてから再度開きます。元のファイル名は、タイムスタンプ拡張子が含まれるように変更されます。audit_log_rotate_on_size
値が 0 の場合、プラグインはサイズに基づいて、そのログを閉じてから再度開きません。代わりに、audit_log_flush
使用して、要求に応じてログを閉じてから再度開きます。この場合、ファイルをフラッシュする前に、サーバーの外部でファイル名を変更します。監査ログファイルのローテーションおよびタイムスタンプの解釈についての詳細は、セクション6.3.12.4「監査ログプラグインのロギング制御」を参照してください。
この変数を 4096 の倍数でない値に設定すると、もっとも近い倍数に切り捨てられます。(したがって、4096 未満の値に設定すると、0 (ゼロ) に設定した結果となり、ローテーションは発生しません。)
この変数は MySQL 5.6.10 で追加されました。
-
コマンド行形式 --audit-log-statement-policy=value
導入 5.6.20 システム変数 audit_log_statement_policy
スコープ グローバル 動的 はい 型 列挙 デフォルト ALL
有効な値 ALL
ERRORS
NONE
監査ログプラグインがステートメントイベントをそのログファイルに書き込む方法を制御するポリシーです。次の表は、許可される値を示しています。
値 説明 ALL
ステートメントイベントのログをすべて記録します ERRORS
失敗したステートメントイベントのログのみを記録します NONE
ステートメントイベントのログを記録しません 注記セクション6.3.12.4「監査ログプラグインのロギング制御」で説明したように、
audit_log_policy
も指定されている場合は、サーバーの起動時に、audit_log_statement_policy
に明示的に指定された値がオーバーライドされる可能性があります。この変数は、MySQL 5.6.20 で追加されました。
-
コマンド行形式 --audit-log-strategy=value
導入 5.6.10 システム変数 audit_log_strategy
スコープ グローバル 動的 いいえ 型 列挙 デフォルト ASYNCHRONOUS
有効な値 ASYNCHRONOUS
PERFORMANCE
SEMISYNCHRONOUS
SYNCHRONOUS
監査ログプラグインで使用されるロギング方法。次の表では、許可されている値について説明します。
表 6.18 監査ログの戦略
値 意味 ASYNCHRONOUS
非同期的にログを記録し、出力バッファー内の領域を待機します PERFORMANCE
非同期的にログを記録し、出力バッファー内の領域が十分でない場合はリクエストを破棄します SEMISYNCHRONOUS
同期的にログを記録し、オペレーティングシステムによるキャッシュ処理を許可します SYNCHRONOUS
同期的にログを記録し、各リクエスト後に sync()
を呼び出しますこの変数は MySQL 5.6.10 で追加されました。