説明
この関数(式)は、フィルターを作成するために使用されます。
適用対象
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity Editionは現在監査機能をサポートしていません。
構文
AUDIT_LOG_FILTER_SET_FILTER('filter_name', 'definition_of_filters');
説明
パラメータの説明
filter_name:フィルター名を指定します。説明
AUDIT_LOG_FILTER_SET_FILTERはCREATE OR REPLACEのセマンティクスであり、既存のオブジェクトに対してDDLを実行すると上書きされます。definition_of_filters:監査フィルターの具体的な設定を定義します。JSON形式で表現されます。現在のバージョンのフィルター設計原則はMySQLと互換性がありますが、監査イベントタイプのフィルタリングのみをサポートしています。以下はいくつかのフィルター設定の書き方です:すべてのイベントを記録します。
{ "filter": { "log": true } }すべてのイベントを記録しません。
{ "filter": { "log": false } }ログインとログアウトのみを記録します。
{ "filter": { "log": true, "class": [ { "name": "connection" } ] } }すべてのイベントを記録する別の書き方。
{ "filter": { "log": true, "class": [ { "name": "connection" }, { "name": "general" }, { "name": "table_access" } ] } }
監査イベントの分類は以下のとおりです:
| イベントタイプ | 説明 |
|---|---|
| connection | ログインおよびログアウト。 |
| table_access | DMLステートメント。 |
| general | コマンドステートメント、パーサー失敗。 |
戻り値
式の入力は文字列定数でなければならず、出力は文字列型です。
- DDLの実行が成功した場合、式は
OKを返します。 - DDLの実行に失敗した場合、
SELECTステートメントは依然として正常に実行され、式の出力結果はエラーメッセージになります。
例
すべてのイベントを記録するフィルター
log_allを作成します。SELECT AUDIT_LOG_FILTER_SET_FILTER('log_all', '{ "filter": { "log": true } }');実行結果は次のとおりです:
+-------------------------------------------------------------------------+ | AUDIT_LOG_FILTER_SET_FILTER('log_all', '{ "filter": { "log": true } }') | +-------------------------------------------------------------------------+ | OK | +-------------------------------------------------------------------------+ 1 row in setDDLが失敗した場合でも、
SELECTステートメントは正常に実行され、式の出力結果はエラーメッセージとなります。SELECT AUDIT_LOG_FILTER_SET_FILTER('log_err', '1');実行結果は次のとおりです:
+---------------------------------------------+ | AUDIT_LOG_FILTER_SET_FILTER('log_err', '1') | +---------------------------------------------+ | ERROR: JSON parsing error. | +---------------------------------------------+ 1 row in set