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.7 loose_rds_audit_max_sql_sizeMySQL 8.0 loose_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 で検索するには、データベースインスタンスが以下のバージョン要件を満たす必要があります。
ApsaraDB RDS for MySQL: メジャーバージョン 8.0、マイナーバージョン 20210311 以降、かつ
loose_rds_audit_log_versionパラメーターがMYSQL_V3に設定されていること。詳細については、「MySQL 8.0 を実行する ApsaraDB RDS インスタンスでサポートされるパラメーター」をご参照ください。PolarDB for MySQL: バージョン 8.0.1.1.15 以降。
SQL ログのクエリおよびエクスポート
DAS コンソール にログインします。
左側ナビゲーションウィンドウで、[インテリジェント O&M センター] > [インスタンスモニタリング] を選択します。
対象のデータベースインスタンスを見つけ、その ID をクリックしてインスタンス詳細ページを開きます。
左側ナビゲーションウィンドウで、SQL Explorer and Audit > 検索 を選択します。
検索 タブ(DAS Enterprise Edition V3 の場合は [監査] タブ)で、クエリパラメーターを設定します。トランザクション ID などの追加フィルターを適用するには、Enable Advanced Query をクリックします。
説明トランザクション ID によるクエリには、「注意事項」で説明するバージョン要件が適用されます。
パラメーター 説明 時間範囲 クエリ対象期間です。オンラインクエリでは最大 24 時間まで対応しており、開始時刻は SQL Explorer のデータ保存期間内である必要があります。24 時間を超える期間のクエリを行う場合は、代わりにログのエクスポートを行ってください。ホット・コールドストレージ構成では、クエリおよびエクスポートともに 24 時間単位での実行に制限されます。 キーワード SQL ステートメントをフィルターするキーワードです。複数のキーワードは半角スペースで区切ります。各キーワードは最低 4 文字以上である必要があります。あいまい検索はサポートされていません。 ユーザー フィルター対象のデータベースユーザー名です。複数のユーザー名は半角スペースで区切ります。例: user1 user2 user3。データベース フィルター対象のデータベース名です。複数のデータベース名は半角スペースで区切ります。例: DB1 DB2 DB3。操作タイプ 含める SQL 操作の種類です。1 つ以上の操作タイプを選択できます。 クエリ をクリックします。一致した SQL ステートメントが Logs セクションに表示されます。Logs セクションの主な列:
列 説明 ステータス SQL ステートメントの実行結果です。完了 は、ステートメントがエラーなく実行されたことを意味し、後でロールバックされたトランザクション内のステートメントも含まれます。 スキャン済み行数 InnoDB ストレージエンジン上でスキャンされた行数です。 fast query cacheから結果が提供された場合は 0 と表示されます。データベース セッションコンテキストから取得したデータベース名です。クロスデータベースクエリや動的 SQL の場合、SQL ステートメント内のデータベース名とは異なる場合があります。 クライアント IP 接続クライアントの IP アドレスです。コネクションプール環境では、実際のクライアントアドレスを反映していない場合があります。
ログのエクスポート
ログファイルをダウンロードするには、以下の手順を実行します。
エクスポート をクリックします。SQL レコードのエクスポート ダイアログボックスが開きます。
エクスポート対象フィールド から、含めるフィールドを選択します。
ダウンロード対象のログについて、エクスポート期間 を設定します。
1 回のエクスポートでは、7 日間の期間内で最大 1,000 万件のレコードを含めることができます。
監査ログ機能が有効化されているデータのみをエクスポートできます。
ホット・コールドストレージ構成では、コールドストレージデータのクエリまたはエクスポートは非同期タスクとして実行されます。タスクリスト をクリックして進捗状況を追跡し、タスク履歴を確認できます。
ホット・コールドストレージ構成では、[CSV 区切り文字] モジュールを使用して、エクスポート前にカスタム列区切り文字を選択できます。これにより、スプレッドシートツールで CSV ファイルを開いた際に列が結合されるのを防ぎます。詳細については、「CSV ファイルの設定および開き方」をご参照ください。

CSV ファイルの設定および開き方
Excel などのツールでエクスポートした CSV ファイルを開くと、SQL ログにデフォルトのカンマ区切り文字が含まれている場合、すべてのデータが 1 列に表示されることがあります。これを回避するには、エクスポート時に SQL ログに含まれないカスタム列区切り文字(例:$)を選択してください。
本セクションでは、Windows 上の Excel 2019 を例に説明します。
エクスポートタスクを作成すると、列区切り文字を選択するダイアログボックスが表示されます。SQL ログに含まれない特殊文字(例:
$)を選択します。
エクスポートした CSV ファイルを Excel で開きます。
列分割対象のデータを選択します。上部ナビゲーションバーで [データ] をクリックします。[データツール] セクションで [区切り文字でテキストを列に変換] をクリックします。
[区切り文字でテキストを列に変換 ウィザード] で、[元のデータ型] セクションから [区切り文字あり] を選択し、[次へ] をクリックします。
[区切り文字] セクションで、[その他] を選択し、
$を入力します。[次へ] をクリックします。[データのプレビュー] セクションに、列の分割結果が表示されます。[列のデータ形式] セクションで [一般] を選択し、[完了] をクリックします。
よくある質問
API リファレンス
以下の API オペレーションを使用すると、ApsaraDB RDS for MySQL、ApsaraDB RDS for PostgreSQL、または ApsaraDB RDS for SQL Server インスタンスの SQL ログをクエリできます。
| オペレーション | 説明 |
|---|---|
| DescribeSQLLogRecords | ApsaraDB RDS インスタンスで SQL Explorer(SQL 監査)機能により生成された監査ログをクエリします。 |
| DescribeSQLLogFiles | ApsaraDB RDS インスタンスで SQL Explorer(SQL 監査)機能により生成されたログファイルをクエリします。 |