SQL 監査機能は、データベースに対するデータ操作言語 (DML) およびデータ定義言語 (DDL) の操作をリアルタイムで記録し、検索できるようにします。
制限事項
SQL 監査ログには、以下の操作は記録されません。
-
INSERT INTO VALUES -
REPLACE INTO VALUES -
UPSERT INTO VALUES
SQL 監査の有効化または無効化
AnalyticDB for MySQL コンソールにログインします。コンソールの左上隅でリージョンを選択します。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。管理したいクラスターを見つけ、そのクラスター ID をクリックします。
-
Sql 監査 ページに移動します。
-
Enterprise Edition、Basic Edition、Data Lakehouse Edition のクラスターの場合、左側のナビゲーションウィンドウで を選択します。
-
Data Warehouse Edition のクラスターの場合、左側のナビゲーションウィンドウで データセキュリティ をクリックし、次に Sql 監査 をクリックします。
-
-
右上隅にある Sql 監査構成 をクリックします。
-
表示されたダイアログボックスで、はい を選択し、を決定 をクリックします。
-
SQL 監査機能を無効にするには、ステップ 1 から 3 を繰り返し、Sql 監査構成 ダイアログボックスを開き、いいえ を選択します。
重要SQL 監査機能を無効にすると、既存のすべての SQL 監査ログがクリアされます。この機能を無効にする前に、SQL 監査ログのクエリとエクスポートを行うことを推奨します。SQL 監査を再度有効にすると、その時点からログが生成されます。
SQL 監査ログのクエリとエクスポート
Sql 監査 ページでは、操作タイプ や 実行ステータス などの条件に基づいて、特定の期間の SQL 監査ログをクエリできます。
-
過去 30 日間の SQL 監査ログのみクエリできます。30 日より古いデータのクエリは空の結果を返します。
-
1 回のクエリで最大 24 時間の範囲を指定できます。現在のページのログをローカルファイルに保存するには、現在のページのエクスポート をクリックします。
よくある質問
INSERT OVERWRITE の監査ログの二重記録
INSERT OVERWRITE 文は AnalyticDB for MySQL 内で非同期に実行されます。アクセスノードがクエリタスクを異なるストレージノードに分散し、最終結果をクライアントに返します。そのため、監査ログには、元のクライアントと AnalyticDB for MySQL のアクセスノードの両方の IP アドレスが記録されます。
監査ログにおける DROP 文の欠落
クラスターでテーブルのゴミ箱機能が有効になっている場合、DROP 文は SQL 監査ログに書き込まれません。テーブルのゴミ箱が有効になっているかを確認するには、次のコマンドを実行します:
SHOW ADB_CONFIG KEY=DROP_FORCE;
-
コマンドが
falseを返した場合、テーブルのゴミ箱は有効です。クラスターはDROP文を書き換え、ドロップされたテーブルをゴミ箱に移動します。その結果、DROP文は SQL 監査ログに表示されません。 -
コマンドが
trueを返した場合、テーブルのゴミ箱は無効です。DROP文は期待どおりに SQL 監査ログに記録されます。
DTS 同期後の UPDATE 文の欠落
Data Transmission Service (DTS) が ApsaraDB RDS からデータを同期する際、データを送信先に書き込む前に、ソースの UPDATE 文を REPLACE INTO VALUES 文、または DELETE と INSERT 文の組み合わせに書き換えます。SQL 監査機能は REPLACE INTO VALUES 文を記録しないため (「制限事項」セクションをご参照ください)、元の UPDATE 文は監査ログに直接表示されません。
API リファレンス
|
エディション |
API |
|
Enterprise Edition、Basic Edition、Data Lakehouse Edition |
|
|
Data Warehouse Edition |
|