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

ApsaraDB RDS:SQLエクスプローラーと監査機能の使用

最終更新日:Mar 19, 2024

セキュリティコンプライアンス監査、パフォーマンス分析、トラブルシューティングなどのシナリオで、ApsaraDB RDS for MySQLインスタンスで実行されるSQL文を監視および管理する場合は、SQL Explorerおよび監査機能を使用できます。 この機能を使用すると、SQL文の実行ステータスの集計分析を記録および実行できます。 この機能を有効にすると、データベースカーネルからのSQL文、SQL文の実行に使用されるアカウント、IPアドレス、および実行の詳細が自動的に記録されます。 インスタンスのパフォーマンスは影響を受けません。

前提条件

重要

SQLエクスプローラーおよび監査機能は、実行されるすべてのデータクエリ言語 (DQL) 、DML、およびDDLステートメントに関する情報を記録します。 システムは、少数のCPUリソースを消費するデータベースカーネルから情報を取得します。

機能の説明と課金ルール

リージョン

サポートされる機能

課金

中国 (杭州) 、中国 (上海) 、中国 (青島) 、中国 (北京) 、中国 (深セン) 、中国 (張家口) 、中国 (張家口) 、中国 (フフホト) 、中国 (成都) 、中国 (広州) 、中国 (ウランカブ) 、中国 (香港) 、シンガポール、マレーシア (クアラルンプール) 、インドネシア (ジャカルタ)

SQLエクスプローラーと監査

  • 検索

  • SQL Explorer

  • セキュリティ監査

  • トラフィックの再生とストレステスト

  • SQL Explorer機能をSQL Explorerおよび監査機能にアップグレードした後にSQL Explorerおよび監査機能を有効にすると、SQL Explorerおよび監査機能の料金がDatabase Autonomy Service (DAS) の請求書に含まれます。 DAS Enterprise Editionを有効にすると、SQLエクスプローラーと監査機能を使用できます。

    • DASは、DAS Enterprise Editionの異なるバージョンを提供します。 バージョンはリージョンによって異なります。 詳細については、「サポートされているデータベースとリージョン」をご参照ください。

    • DAS Enterprise Editionの各バージョンの価格は異なります。 詳細については、「課金の概要」をご参照ください。

    重要

    ApsaraDB RDSコンソールでは、現在のリージョンでサポートされているDAS Enterprise Editionの最新バージョンのみを有効にできます。 DAS Enterprise Editionのアップデートにより、より柔軟な課金方法が導入され、コストが削減されます。

  • SQL Explorer機能がSQL Explorerおよび監査機能にアップグレードされる前に、RDSインスタンスに対してSQL Explorer機能が有効になっている場合、料金はApsaraDB RDSの請求書に含まれます。

    説明

    次の操作を実行して、SQL Explorer機能をSQL Explorerおよび監査機能にアップグレードできます。ApsaraDB RDSコンソールにログインし、[SQL Explorer] タブに移動し、表示されるダイアログボックスで [ワンクリックアップグレード] をクリックします。 アップグレードが完了すると、料金はDASの請求書に含まれます。

前のリージョン以外のすべてのリージョン

SQL Explorer (旧SQL監査)

  • 検索

  • 分析

料金はApsaraDB RDSの請求書に含まれています。

説明

SQL Explorerおよび監査機能の料金がApsaraDB RDSに請求される場合、料金は1時間ごとに差し引かれます。 料金はRDSインスタンスのリージョンによって異なります。

  • 1時間あたりのGBあたりの米ドル0.0015: 中国 (香港) 、米国 (シリコンバレー) 、および米国 (バージニア)

  • シンガポール、日本 (东京) 、ドイツ (フランクフルト) 、アラブ首长国连邦 (ドバイ) 、オーストラリア (シドニー) 、マレーシア (クアラルンプール) 、インド (ムンバイ) 、インドネシア (ジャカルタ) 、英国 (ロンドン) の0.0018 USD

  • 1時間あたりの0.0012米ドル: 中国 (杭州) 、中国 (上海) 、中国 (青島) 、中国 (北京) 、中国 (張家口) 、中国 (フフホト) 、中国 (ウランカブ) 、中国 (深セン) 、中国 (河源) 、中国 (広州) 、中国 (成都) 、タイ (バンコク) 、韓国 (ソウル) 、フィリピン (マニラ)

  • 検索: この機能は、実行されるSQL文に関する情報を照会およびエクスポートするために使用されます。 この情報には、SQL文の実行履歴と、各SQL文のデータベース、ステータス、および実行期間が含まれます。

  • SQL Explorer: この機能は、特定の期間内に実行されたSQL文のヘルスチェックの実行、パフォーマンスの問題のトラブルシューティング、およびビジネストラフィックの分析に使用されます。

  • セキュリティ監査: この機能は、リスクの高いSQL文、SQLインジェクション攻撃、新しいアクセスソースなどのリスクを特定するために使用されます。

  • トラフィックの再生とストレステスト: この機能は、トラフィックの急増に対処するためにRDSインスタンスをスケーリングする必要があるかどうかを確認するために使用されます。

  • 分析: この機能は、特定の期間内に実行されたSQL文を分析して、異常なSQL文を特定し、パフォーマンスの問題をトラブルシューティングするために使用されます。

シナリオ

  • RDSインスタンスは、金融、セキュリティ、株式、公共サービス、保険セクターなど、高いデータセキュリティが必要なセクターに使用されます。

  • RDSインスタンスのステータスを分析して、極端なシナリオで問題をトラブルシューティングし、SQL文のパフォーマンスを確認する必要があります。

  • SQL Explorer機能によって生成されたSQL文に関する情報を使用して、RDSインスタンスを復元します。

使用上の注意

  • オンラインクエリの時間範囲は最大24時間です。 SQL Explorer機能は、多数のSQL文を記録します。 この機能を使用して、RDSインスタンスで実行されるすべての操作を追跡できます。 オンラインクエリの時間範囲が24時間を超えると、クエリがタイムアウトしたり、クエリ結果が長期間返されたりする可能性があります。

    説明
    • SQL Explorerのデータ保存期間内で、任意の24時間のデータを照会できます。

    • 24時間を超える期間にわたってSQL文の実行記録を照会する場合は、Log Serviceを使用して、SQL Explorer機能によって生成されたログにアクセスできます。 詳細については、「RDS SQL監査ログの収集」をご参照ください。

  • オンラインクエリの条件の組み合わせを指定できます。 たとえば、キーワードフィールドにtest1 test2と入力して、test1またはtest2キーワードを含むSQLログを照会できます。

  • オンラインクエリではあいまい一致はサポートされていません。

  • オンラインクエリの各キーワードには、少なくとも4文字を含める必要があります。

  • SQLエクスプローラーと監査機能を使用して記録されるSQLステートメントの長さは最大8,192バイトです。 最大長は、loose_rds_audit_max_sql_sizeまたはloose_rds_audit_log_event_buffer_sizeパラメーターで指定します。 パラメーターの有効値: 0 ~ 32768 単位:バイト

    • 上記のパラメーターのいずれかに8192以下の値を指定し、SQL文の長さが指定したパラメーター値を超える場合、超過部分は切り捨てられます。 プレフィックスは、データの収集および処理中にSQL文に追加されます。 その結果、SQL文の最大長は、指定されたパラメーター値よりわずかに短くなります。

    • 上記のパラメーターのいずれかに8192を超える値を指定した場合、SQL文の最大長は8,192バイトです。 最大長が8,192バイトを超える場合、超過部分は切り捨てられる。 プレフィックスは、データの収集および処理中にSQL文に追加されます。 その結果、SQL文の最大長は8,192バイトよりわずかに短くなります。

    説明
    • RDSインスタンスがMySQL 5.6またはMySQL 5.7を実行している場合、loose_rds_audit_max_sql_sizeパラメーターを使用して、SQL文の最大長を指定できます。

    • RDSインスタンスがMySQL 8.0を実行している場合、loose_rds_audit_log_event_buffer_sizeパラメーターを使用して、SQL文の最大長を指定できます。

  • SQL Explorer Trial Editionを使用する場合、DescribeSQLLogRecordsまたはDescribeSQLLogFiles操作を呼び出して監査ログを照会することはできません。

  • ロック待機時間はSQL Explorerログに記録されますが、低速クエリログには記録されません。

  • データベースプロキシエンドポイントを使用してRDSインスタンスに接続し、データベースプロキシに対してトランザクションレベルの接続プール機能が有効になっている場合、接続を再利用できます。 その結果、クライアントのIPアドレスとポートが、[SHOW PROCESSLIST] ステートメントによって返される、または [SQLエクスプローラー] タブに表示されるIPアドレスとポートと異なる場合があります。 詳細については、「データベースプロキシとは」をご参照ください。

  • Prepareメソッドを使用する場合、SQL Explorer機能は2つのSQL文を記録します。 1つのステートメントは疑問符 (?) を含み、別のステートメントは特定の値を含む。

  • PolarDB-X 1.0インスタンスにアタッチされているRDSインスタンスでSQLステートメントが実行されると、データベースとテーブルが水平方向に分割されているため、RDSインスタンスのSQL Explorerおよび監査機能によって複数のログが生成されます。

SQLエクスプローラーと監査機能の有効化

説明

log ServiceのCloudLens for RDSアプリケーションでRDSインスタンスの監査ログ収集機能を有効にすると、RDSインスタンスのSQL Explorerおよび監査機能が自動的に有効になります。 詳細については、「CloudLens For RDS」をご参照ください。

  1. [インスタンス] ページに移動します。 上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。 次に、RDSインスタンスを見つけ、インスタンスのIDをクリックします。
  2. 表示されるページの左側のナビゲーションウィンドウで、自律型サービス (CloudDBA) > SQL Explorer and Audit を選択します。

  3. SQLエクスプローラーと監査機能を有効にします

    • RDSインスタンスが次のいずれかのリージョンにある場合、DAS Enterprise Editionを有効にすることでSQL Explorer and Audit機能を有効にできます: 中国 (杭州) 、中国 (上海) 、中国 (青島) 、中国 (北京) 、中国 (深セン) 、中国 (張家口) 、中国 (フフフホト) 、中国 (成都) 、中国 (広州) 、中国 (河安、中国 (ウランカブ) 、中国 (香港) 、シンガポール、マレーシア (クアラルンプール) 、インドネシア (ジャカルタ)

      • DASは、DAS Enterprise Editionの異なるバージョンを提供します。 バージョンはリージョンによって異なります。 詳細については、「サポートされているデータベースとリージョン」をご参照ください。

      • DAS Enterprise Editionの各バージョンの価格は異なります。 詳細については、「課金の概要」をご参照ください。

      重要

      ApsaraDB RDSコンソールでは、現在のリージョンでサポートされているDAS Enterprise Editionの最新バージョンのみを有効にできます。 DAS Enterprise Editionのアップデートにより、より柔軟な課金方法が導入され、コストが削減されます。

    • RDSインスタンスが前述のリージョン以外のリージョンにある場合は、正式版 をクリックして保存期間を設定し、[OK] をクリックして [SQL Explorer and Audit] 機能を有効にします。

  4. 表示されるページで、ビジネス要件に基づいてタブをクリックします。 次に、フィーチャに関する情報を表示できます。

    • 検索機能の詳細については、「検索」をご参照ください。

    • SQL Explorer機能の詳細については、「SQL Explorer」をご参照ください。

    • セキュリティ監査機能の詳細については、「セキュリティ監査」をご参照ください。

    • トラフィックの再生とストレステスト機能の詳細については、「トラフィック再生とストレステスト」をご参照ください。

SQL Explorerと監査によって生成されたデータの保存期間の変更

警告

SQL Explorerと監査によって生成されたデータの保存期間を短縮した後、DASは保存期間よりも長い期間保持されているSQL監査ログを直ちに削除します。 SQL監査ログをコンピューターにエクスポートして保存し、SQL Explorerとauditによって生成されたデータの保存期間を短縮することをお勧めします。

  1. [インスタンス] ページに移動します。 上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。 次に、RDSインスタンスを見つけ、インスタンスのIDをクリックします。
  2. 表示されるページの左側のナビゲーションウィンドウで、自律型サービス (CloudDBA) > SQL Explorer and Audit を選択します。

  3. Service Settings をクリックします。

  4. Service Settings ダイアログボックスで、保存期間を変更し、[OK] をクリックします。

    説明
    • [サービス設定] ボタンの右側にある SQL Explorer and Audit 機能によって生成されたログのサイズを表示できます。 基本情報 ページの 使用状況 セクションで、SQLエクスプローラーと監査機能によって生成されたログのサイズを表示することもできます。

    • 検索機能を使用して、SQL Explorerおよび監査機能によって生成されたログに関する情報を照会およびエクスポートできます。 詳細については、「検索」をご参照ください。

SQLエクスプローラーと監査機能を無効にする

警告

SQL Explorerおよび監査機能を無効にすると、この機能によって生成されたすべてのログが削除されます。 SQL Explorerおよび監査機能によって生成されたログをコンピューターにエクスポートして保存し、SQL Explorerおよび監査機能を無効にすることをお勧めします。 SQL Explorerおよび監査機能を再度有効にすると、この機能によって生成されたログは、SQL Explorerおよび監査機能が再度有効になった時点から記録されます。

  1. [インスタンス] ページに移動します。 上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。 次に、RDSインスタンスを見つけ、インスタンスのIDをクリックします。
  2. 左側のナビゲーションウィンドウで、自律型サービス (CloudDBA) > SQL Explorer and Audit を選択します。

  3. 検索 タブの Logs セクションで、エクスポート をクリックします。

  4. 表示されるダイアログボックスで、[エクスポートフィールド] および [エクスポート時間範囲] パラメーターを設定し、[OK] をクリックします。

  5. ログをエクスポートしたら、ログファイルをダウンロードしてコンピューターに保存します。

    SQL監査ログのダウンロード方法は、DAS Enterprise Editionのバージョンによって異なります。 ApsaraDB RDSコンソールの実際の状況に基づいて、SQL監査ログをダウンロードできます。

    • [検索] タブで、[エクスポートされたログの表示] をクリックして、エクスポートされたファイルをダウンロードします。

    • [タスクリスト] タブで、[ダウンロード] をクリックして、エクスポートしたログファイルをダウンロードします。

  6. Service Settings ダイアログボックスで、SQLインサイトと監査をオフにし、SQL Explorer を無効化すると、関連するすべてのデータが削除されます。 サービスの無効化 をクリックします。

    説明

    log ServiceのCloudLens for RDSアプリケーションでRDSインスタンスの監査ログ収集機能を有効にすると、RDSインスタンスのSQL Explorerおよび監査機能が自動的に有効になります。 したがって、RDSインスタンスの監査ログ収集機能も無効にする必要があります。 詳細については、「CloudLens For RDS」をご参照ください。

FAQ

何がログアウト! [SQLエクスプローラー] タブの [完全なリクエスト統計] セクションのステートメントは、

ログアウト! 文は切断を示します。 ログアウト! の実行期間 ステートメントは、最後のインタラクション時間と切断が発生した時間の差です。 時間差の間、接続はアイドルのままである。 [ステータス] 列に表示される1158コードは, 次の原因によるネットワークの切断を示しています。

  • クライアント接続がタイムアウトします。

  • サーバーが切断されました。

  • 接続期間がinteractive_timeoutまたはwait_timeoutパラメーターで指定されたタイムアウト期間を超えると、サーバーへの接続がリセットされます。

SQL Explorerタブの [ソース統計] タブの [アクセスソース] 列にパーセント記号 (%) が表示されるのはなぜですか。

ストアドプロシージャを使用すると、[SQLエクスプローラー] タブの [ソース統計] タブの [アクセスソース] 列にパーセント記号 (%) が表示される場合があります。 この状況を再現するには、次の操作を実行します。

説明

この例では、データベースインスタンスはApsaraDB RDS for MySQLインスタンス、テストアカウントはtest_user、テストデータベースはtestdbです。

  1. ApsaraDB RDSコンソールで、データベースと標準アカウントを作成し、データベースに対する権限を標準アカウントに付与します。 詳細については、「アカウントとデータベースの作成」をご参照ください。

  2. CLIを使用してデータベースインスタンスに接続するには、test_userアカウントを使用します。 詳細については、「データベースクライアントまたはCLIを使用したApsaraDB RDS For MySQLインスタンスへの接続」をご参照ください。

  3. testdbデータベースに切り替え、次のステートメントを実行してストアドプロシージャを作成します。

    -- testdbデータベースに切り替えます。
    使用testdb;
    
    -- ストアドプロシージャを作成します。
    DELIMITER $$
    終了した場合のドロップ手順「das」 $$
    CREATE DEFINER='test_user' @ '%' PROCEDURE 'das'()
    開始
    SELECT * FROM information_schema.processlist WHERE Id = CONNECTION_ID();
    END $$
    DELIMITER; 
  4. 特権アカウントを使用してデータベースインスタンスに接続します。 詳細については、「データベースクライアントまたはCLIを使用したApsaraDB RDS For MySQLインスタンスへの接続」をご参照ください。

  5. 作成したストアドプロシージャを呼び出します。

    -- testdbデータベースに切り替えます。
    使用testdb;
    
    -- ストアドプロシージャを呼び出します。
    CALL das();
    
    -------- --------- ---------- ------------------------------------------------------ ------------------------------------------------------------------------- +
    | ID | ユーザー | ホスト | DB | コマンド | 時間 | 州 | 情報 |
    -------- --------- ---------- ------------------------------------------------------ ------------------------------------------------------------------------- +
    | 487818 | test_user | %:2065 | testdb | クエリ | 0 | executing | SELECT * FROM information_schema.processlist WHERE Id = CONNECTION_ID() |
    -------- ---------- --------- -------- ------------------------------------------- ------------------------------------------------------------------------- + 

RDSインスタンスでいくつかのSQL文を実行すると、データが返されますが、SQL Explorerおよび監査ページの [検索] タブの [ログ] セクションには、スキャンされた行がゼロと表示されます。 これはなぜですか。

RDSインスタンスでquery_cache_type機能が有効になっています。 [ログ] セクションでは、SQL文のスキャンされた行数は、InnoDBストレージエンジンでスキャンされた行数です。 高速クエリキャッシュ機能を有効にすると、MySQLはクエリ結果をキャッシュします。 同じクエリ要求が送信され、クエリキャッシュにヒットした場合、システムはクエリ要求をInnoDBストレージエンジンに送信する代わりに、キャッシュされたクエリ結果を直接返します。 したがって、一部のSQL文を実行すると、データは返されますが、[ログ] セクションにはスキャンされた行がゼロと表示されます。詳細については、「高速クエリキャッシュ」をご参照ください。

参考資料

RDSインスタンスでSQLエクスプローラーと監査機能が有効になっておらず、SQL実行レコードを表示する場合は、RDSインスタンスのバイナリログを表示できます。 ただし、バイナリログでは、バックアップ保持期間内にデータを追加、削除、および変更するために実行されるSQL文のみを照会できます。 送信元IPアドレスとアカウントに関する情報は照会できません。 詳細については、「バイナリログファイルの管理」をご参照ください。

SQL Exploreログとバイナリログの違い

SQL監査ログとバイナリログの両方に、RDSインスタンスに加えられた増分変更に関する情報が含まれています。 2つのタイプのログは、次の点で異なります。

  • SQL Explorerログには、実行されるすべてのDQL、DML、およびDDL操作に関する情報が含まれます。 システムは、データベースカーネルから少量のCPUリソースを消費する情報を取得します。 RDSインスタンスの負荷が高い場合、少数のレコードが失われる可能性があります。 その結果、SQL Explorerログから取得される増分データが不正確になる可能性があります。

  • バイナリログには、実行されるすべての追加、削除、および変更操作と、データの復元に使用される増分データが記録されます。 バイナリーログファイルは、RDSインスタンスに一時的に保存されます。 システムは、データが書き込まれたバイナリログファイルをObject Storage Service (OSS) バケットに定期的に転送します。 バイナリログファイルは、OSSバケットに7日間保存できます。 データが書き込まれているバイナリログファイルをOSSバケットに転送することはできません。 したがって、Binlogsのアップロード機能を使用してバイナリログファイルをOSSバケットにアップロードした後、一部のバイナリログファイルはOSSバケットにアップロードされません。 バイナリログはリアルタイムで生成されません。 ただし、バイナリログファイルを使用して、正確な増分データを取得できます。