すべてのプロダクト
Search
ドキュメントセンター

Database Autonomy Service:Audit

最終更新日:Mar 28, 2026

Database Autonomy Service (DAS) の SQL Explorer および Audit モジュールでは、接続済みのデータベースインスタンスに対する SQL ログの検索、フィルター処理、およびエクスポートが可能です。データベース活動のトレース、パフォーマンスの問題の調査、コンプライアンスまたはインシデント対応に必要な監査記録の作成にご活用ください。

重要

DAS Enterprise Edition V3 を有効化している場合、検索機能は「監査機能」に名称変更されます。検索 タブは、[監査] タブに変更されます。

前提条件

開始する前に、以下の点を確認してください。

  • データベースインスタンスが DAS に接続されており、「通常アクセス」状態である。

  • 当該インスタンスに対して SQL Explorer および Audit が有効化されている。詳細については、「SQL Explorer および Audit の有効化」セクション(トピック「概要」内)をご参照ください。

  • Resource Access Management (RAM) ユーザーとしてログインしている場合、RAM アカウントに AliyunHDMReadOnlyWithSQLLogArchiveAccess ポリシーがアタッチされている。詳細については、「システムポリシーを使用して RAM ユーザーに権限を付与する」セクション(トピック「RAM ユーザーとして DAS を利用するには?」内)をご参照ください。

説明

カスタムポリシーを用いて RAM ユーザーにアクセス権限を付与する場合は、「RAM ユーザーに SQL Explorer および Audit モジュールの検索およびエクスポート機能を利用する権限をカスタムポリシーで付与する」セクション(トピック「RAM ユーザーとして DAS を利用するには?」内)をご参照ください。

サポート対象のデータベースおよびリージョン

エディションと対応機能」をご参照ください。

注意事項

  • SQL ステートメントの長さ制限: SQL ログは、1 ステートメントあたり最大 8,192 バイトまで収集します。この上限を超えるステートメントについては、超過分は記録されません。ApsaraDB RDS for MySQL インスタンスおよび PolarDB for MySQL クラスターの場合、以下のパラメーターで最大長を設定できます。以下の点にご注意ください。

    • パラメーター値を 8,192 バイト以下に設定した場合、その値が上限として適用されます。ただし、データ収集時にプレフィックスが付加されるため、実効的な上限は指定値より若干小さくなります。

    • パラメーター値を 8,192 バイトより大きく設定した場合、上限はデフォルトで 8,192 バイトとなります。同様に、データ収集時のプレフィックス付加により、実効的な上限は 8,192 バイトより若干小さくなります。

    MySQL バージョンパラメーター
    MySQL 5.6 または 5.7loose_rds_audit_max_sql_size
    MySQL 8.0loose_rds_audit_log_event_buffer_size
  • ステータス列: 完了 のステータスは、SQL ステートメントがエラーなく実行されたことを示します。これは、後でロールバックされたトランザクション内のステートメントも含みます — ステートメント自体が正常に実行された場合、ステータスは 完了 と表示されます。

  • IP アドレスの精度: ApsaraDB RDS for MySQL インスタンスおよび PolarDB for MySQL クラスターへの接続は、コネクションプーリングによって再利用されることがあります。Logs セクションに表示される IP アドレスおよびポートは、実際のクライアントアドレスと異なる場合があります。詳細については、ApsaraDB RDS for MySQL のドキュメント内の「コネクションプーリング機能の設定」および PolarDB for MySQL のドキュメント内の「コネクションプール」をご参照ください。

  • トランザクション ID によるクエリ: 高度なクエリ機能を用いてトランザクション ID で検索するには、データベースインスタンスが以下のバージョン要件を満たす必要があります。

SQL ログのクエリおよびエクスポート

  1. DAS コンソール にログインします。

  2. 左側ナビゲーションウィンドウで、[インテリジェント O&M センター][インスタンスモニタリング] を選択します。

  3. 対象のデータベースインスタンスを見つけ、その ID をクリックしてインスタンス詳細ページを開きます。

  4. 左側ナビゲーションウィンドウで、SQL Explorer and Audit検索 を選択します。

  5. 検索 タブ(DAS Enterprise Edition V3 の場合は [監査] タブ)で、クエリパラメーターを設定します。トランザクション ID などの追加フィルターを適用するには、Enable Advanced Query をクリックします。

    説明

    トランザクション ID によるクエリには、「注意事項」で説明するバージョン要件が適用されます。

    パラメーター説明
    時間範囲クエリ対象期間です。オンラインクエリでは最大 24 時間まで対応しており、開始時刻は SQL Explorer のデータ保存期間内である必要があります。24 時間を超える期間のクエリを行う場合は、代わりにログのエクスポートを行ってください。ホット・コールドストレージ構成では、クエリおよびエクスポートともに 24 時間単位での実行に制限されます。
    キーワードSQL ステートメントをフィルターするキーワードです。複数のキーワードは半角スペースで区切ります。各キーワードは最低 4 文字以上である必要があります。あいまい検索はサポートされていません。
    ユーザーフィルター対象のデータベースユーザー名です。複数のユーザー名は半角スペースで区切ります。例:user1 user2 user3
    データベースフィルター対象のデータベース名です。複数のデータベース名は半角スペースで区切ります。例:DB1 DB2 DB3
    操作タイプ含める SQL 操作の種類です。1 つ以上の操作タイプを選択できます。
  6. クエリ をクリックします。一致した SQL ステートメントが Logs セクションに表示されます。Logs セクションの主な列:

    説明
    ステータスSQL ステートメントの実行結果です。完了 は、ステートメントがエラーなく実行されたことを意味し、後でロールバックされたトランザクション内のステートメントも含まれます。
    スキャン済み行数InnoDB ストレージエンジン上でスキャンされた行数です。fast query cache から結果が提供された場合は 0 と表示されます。
    データベースセッションコンテキストから取得したデータベース名です。クロスデータベースクエリや動的 SQL の場合、SQL ステートメント内のデータベース名とは異なる場合があります。
    クライアント IP接続クライアントの IP アドレスです。コネクションプール環境では、実際のクライアントアドレスを反映していない場合があります。

ログのエクスポート

ログファイルをダウンロードするには、以下の手順を実行します。

  1. エクスポート をクリックします。SQL レコードのエクスポート ダイアログボックスが開きます。

  2. エクスポート対象フィールド から、含めるフィールドを選択します。

  3. ダウンロード対象のログについて、エクスポート期間 を設定します。

重要
  • 1 回のエクスポートでは、7 日間の期間内で最大 1,000 万件のレコードを含めることができます。

  • 監査ログ機能が有効化されているデータのみをエクスポートできます。

  • ホット・コールドストレージ構成では、コールドストレージデータのクエリまたはエクスポートは非同期タスクとして実行されます。タスクリスト をクリックして進捗状況を追跡し、タスク履歴を確認できます。

ホット・コールドストレージ構成では、[CSV 区切り文字] モジュールを使用して、エクスポート前にカスタム列区切り文字を選択できます。これにより、スプレッドシートツールで CSV ファイルを開いた際に列が結合されるのを防ぎます。詳細については、「CSV ファイルの設定および開き方」をご参照ください。

s

CSV ファイルの設定および開き方

Excel などのツールでエクスポートした CSV ファイルを開くと、SQL ログにデフォルトのカンマ区切り文字が含まれている場合、すべてのデータが 1 列に表示されることがあります。これを回避するには、エクスポート時に SQL ログに含まれないカスタム列区切り文字(例:$)を選択してください。

本セクションでは、Windows 上の Excel 2019 を例に説明します。

  1. エクスポートタスクを作成すると、列区切り文字を選択するダイアログボックスが表示されます。SQL ログに含まれない特殊文字(例:$)を選択します。

    image..png

  2. エクスポートした CSV ファイルを Excel で開きます。

  3. 列分割対象のデータを選択します。上部ナビゲーションバーで [データ] をクリックします。[データツール] セクションで [区切り文字でテキストを列に変換] をクリックします。

  4. [区切り文字でテキストを列に変換 ウィザード] で、[元のデータ型] セクションから [区切り文字あり] を選択し、[次へ] をクリックします。

  5. [区切り文字] セクションで、[その他] を選択し、$ を入力します。[次へ] をクリックします。[データのプレビュー] セクションに、列の分割結果が表示されます。

  6. [列のデータ形式] セクションで [一般] を選択し、[完了] をクリックします。

よくある質問

データが返されたクエリで「スキャン済み行数」列が 0 と表示されるのはなぜですか?

インスタンスで fast query cache 機能が有効化されています。クエリがキャッシュにヒットした場合、MySQL は InnoDB ストレージをスキャンせずにキャッシュされた結果を直接返すため、データが返されたにもかかわらず「スキャン済み行数」は 0 になります。詳細については、ApsaraDB RDS for MySQL のドキュメント内の「Fast query cache」または PolarDB for MySQL のドキュメント内の「Fast Query Cache」をご参照ください。

ApsaraDB RDS for PostgreSQL インスタンスで失敗した SQL ステートメントが見つからないのはなぜですか?

ApsaraDB RDS for PostgreSQL における失敗した SQL ステートメントは、監査ログではなくエラーログに記録されます。これらのログを表示するには、「ログの表示」をご参照ください。

[ログ] セクションのデータベース名が SQL ステートメント内のものと異なるのはなぜですか?

Logs セクションのデータベース名はセッションコンテキストから取得されるのに対し、SQL ステートメント内の名前はユーザーが指定したもの(例:クロスデータベースクエリや動的 SQL)であり、設計上異なる場合があります。

SQL Explorer および Audit はデータベースパフォーマンスに影響を与えますか?

実際には、影響は極めて小さく、無視できるレベルです。

  • CPU およびメモリ: ほぼ検知できないほど極めて低い。

  • ストレージ: 影響なし。監査データはデータベースインスタンスのディスクではなく DAS 内に保存されます。

  • ネットワーク: 影響なし。

  • ディスクパフォーマンス: 影響なし。監査データは DAS 内に保存されるため、データベースインスタンスのディスクは関与しません。

API リファレンス

以下の API オペレーションを使用すると、ApsaraDB RDS for MySQL、ApsaraDB RDS for PostgreSQL、または ApsaraDB RDS for SQL Server インスタンスの SQL ログをクエリできます。

オペレーション説明
DescribeSQLLogRecordsApsaraDB RDS インスタンスで SQL Explorer(SQL 監査)機能により生成された監査ログをクエリします。
DescribeSQLLogFilesApsaraDB RDS インスタンスで SQL Explorer(SQL 監査)機能により生成されたログファイルをクエリします。