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

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

最終更新日:Dec 23, 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および監査機能の料金がApsaraDB RDSに請求される場合、料金は1時間ごとに差し引かれます。 料金は RDS インスタンスのリージョンによって異なります。

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

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

  • GB時間あたりの0.0012米ドル: 中国 (杭州) 、中国 (上海) 、中国 (青島) 、中国 (北京) 、中国 (張家口) 、中国 (フフホト) 、中国 (ウランカブ) 、中国 (深セン) 、中国 (河源) 、中国 (広州) 、および中国 (成都) 。

  • Search: 実行されるSQL文に関する情報を照会およびエクスポートします。 情報には、データベース、ステータス、および実行時間が含まれます。

  • SQL Explorer: SQL文の正常性ステータスを診断し、パフォーマンスの問題をトラブルシューティングし、ビジネストラフィックを分析します。

  • セキュリティ監査: リスクの高いSQL文、SQLインジェクション攻撃、新しいアクセスソースなどのリスクを特定します。

  • トラフィックの再生とストレステスト: トラフィックの急増に対処するためにRDSインスタンスをスケールアウトする必要があるかどうかを確認します。

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

シナリオ

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

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

  • 極端な状況で実行されたSQL文に関する記録された情報を使用して、RDSインスタンスのデータを復元します。

使用上の注意

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

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

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

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

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

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

  • 監査ログ機能を使用すると、RDSインスタンスで実行されるSQL文をスレッドIDとトランザクションIDで照会できます。

    説明
    • RDSインスタンスで実行されるSQL文をスレッドIDでクエリする場合は、loose_rds_audit_log_versionパラメーターをMYSQL_V3に設定する必要があります。 詳細については、「MySQL 8.0を実行するApsaraDB RDSインスタンスでサポートされているパラメーター」をご参照ください。

    • スレッドIDでMySQL 8.0を実行するRDSインスタンスで実行されたSQL文を照会する場合は、RDSインスタンスが20210930以降のマイナーエンジンバージョンを実行していることを確認する必要があります。 スレッドIDでMySQL 5.7を実行するRDSインスタンスで実行されたSQL文を照会する場合は、RDSインスタンスが20210630以降のマイナーエンジンバージョンを実行していることを確認する必要があります。

  • 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エクスプローラーと監査機能の有効化

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

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

  1. [インスタンス] ページに移動します。 上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。 次に、RDSインスタンスを見つけ、インスタンスのIDをクリックします。

  2. 表示されるページの左側のナビゲーションウィンドウで、自律型サービス (CloudDBA) > SQL Explorer and Auditを選択します。

  3. [Enable Enterprise Edition V3] をクリックします。

  4. 有効にするサブ機能を選択し、送信をクリックします。

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パネルで、SQL Explorerと監査機能によって生成されたログの保存期間を変更し、OKをクリックします。

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

警告

SQL Explorerおよび監査機能を無効にすると、SQL Explorerおよび監査機能によって生成されたすべてのログが削除されます。 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. ログをエクスポートしたら、ログファイルをダウンロードしてコンピューターに保存します。

  6. 右上隅の Service Settings をクリックします。 表示されるダイアログボックスで、SQLエクスプローラーと監査機能を無効にします。

    DAS Enterprise Edition V3を有効にしてSQL Explorerおよび監査を有効にする場合は、パネルのSQL Explorerおよび監査機能のすべてのサブ機能をクリアし、[送信] をクリックします。

    説明

    SQL Explorerおよび監査機能のデータを格納するために使用されるストレージスペースは、機能が無効になってから約1時間後に解放されます。

DAS Enterprise Editionの異なるバージョン間でデータを移行する

DAS Enterprise Edition V1と比較して、DAS Enterprise Edition V2の基盤となるストレージアーキテクチャが変更されています。 ホットデータとコールドデータのハイブリッドストレージは、低コストでパフォーマンスを向上させるために使用されます。 DAS Enterprise Edition V3は、ホットデータとコールドデータのハイブリッドストレージを使用し、請求可能な項目を機能ごとに細分化して、より柔軟な請求を実現します。

RDSインスタンスがDAS Enterprise Edition V3をサポートしている場合、DAS Enterprise Edition V1またはDAS Enterprise Edition V2からDAS Enterprise Edition V3にデータを移行してコストを削減できます。 詳細については、「DAS Enterprise Editionの異なるバージョン間でデータを移行するにはどうすればよいですか。」をご参照ください。

警告

データ移行を終了またはロールバックすることはできません。 データを移行する前に、移行手順を注意深くお読みください。

よくある質問

Q: [SQLエクスプローラー] タブの [完全なリクエスト統計] セクションに ログアウトは何の意味ですか?

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

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

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

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

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

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

説明

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

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

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

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

    -- Switch to the testdb database.
    USE testdb;
    
    -- Create a stored procedure.
    DELIMITER $$
    DROP PROCEDURE IF EXISTS `das` $$
    CREATE DEFINER=`test_user`@`%` PROCEDURE `das`()
    BEGIN
    SELECT * FROM information_schema.processlist WHERE Id = CONNECTION_ID();
    END $$
    DELIMITER;
  4. 特権アカウントを使用してデータベースインスタンスに接続します。 詳細については、「データベースクライアントまたはCLIを使用したApsaraDB RDS For MySQLインスタンスへの接続」をご参照ください。

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

    -- Switch to the testdb database.
    USE testdb;
    
    -- Call the stored procedure.
    CALL das();
    
    +--------+-----------+--------+--------+---------+------+-----------+-------------------------------------------------------------------------+
    | ID     | USER      | HOST   | DB     | COMMAND | TIME | STATE     | INFO                                                                    |
    +--------+-----------+--------+--------+---------+------+-----------+-------------------------------------------------------------------------+
    | 487818 | test_user | %:2065 | testdb | Query   |    0 | executing | SELECT * FROM information_schema.processlist WHERE Id = CONNECTION_ID() |
    +--------+-----------+--------+--------+---------+------+-----------+-------------------------------------------------------------------------+

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

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

SQL Exploreログとバイナリログの違いは何ですか?

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

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

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

ApsaraDB RDSコンソールでSQL Exploreのエントリポイントが消えるのはなぜですか。

SQLエクスプローラーと監査機能が更新されました。 エントリポイントがSQL Explorerと監査に変わります。

SQL Explorer機能を有効にできますか?

いいえ、RDSインスタンスのSQL Explorerおよび監査機能の最新バージョンのみを有効にできます。 詳細については、「DASエディションとサポートされている機能」をご参照ください。