このトピックでは、ApsaraDB RDS for MySQLインスタンスでSQL Explorer機能を使用する方法について説明します。 SQL監査機能はSQL Explorer機能にアップグレードされ、セキュリティ監査やパフォーマンス診断などの付加価値の高い機能を低コストで提供します。 アップグレードによってRDSインスタンスのワークロードが中断されることはありません。

始める前に

  • RDSインスタンスは、RDS High-availability EditionまたはRDS Enterprise Editionを実行します。
  • RAMユーザーには、ApsaraDB RDSの読み取りおよび書き込み権限が付与されています。 たとえば、AliyunRDSFullAccessポリシーがRAMユーザーにアタッチされているとします。 RAMユーザーを使用してRDSインスタンスにログインする場合、この前提条件を満たす必要があります。 RAMユーザーに権限を付与する方法の詳細については、「RAM を利用した RDS 権限管理」をご参照ください。

このタスクについて

RDSインスタンスのSQL Explorer機能を有効にすると、SQL Explorer機能は、RDSインスタンスで実行されるすべてのデータクエリ言語 (DQL) 、DML、およびDDL操作に関する情報を記録します。 ApsaraDB RDSは、ネットワークプロトコル分析手法を使用して情報を取得します。 このようにして、少数のvCPUリソースのみが消費されます。 SQL Explorer Trial Editionでは、SQL監査ログファイルを最大1日無料で保存できます。 SQL監査ログファイルを1日以上保存する場合は、追加料金が発生します。

お知らせ

一部のリージョンでは、SQL Explorer機能がSQL Explorerおよび監査機能にアップグレードされます。 地域には、中国 (杭州) 、中国 (上海) 、中国 (青島) 、中国 (北京) 、中国 (深セン) 、中国 (張家口) 、中国 (フフホト) 、中国 (成都) 、中国 (広州) 、中国 (河源) 、中国 (ウランカブ) 、中国 (香港) 、シンガポール (シンガポール) 、マレーシア (クアラルンプール) 、インドネシア (ジャカルタ) SQL Explorerと監査機能は、SQL Explorer-比較による表示ソース統計SQLレビュー関連するSQL識別SQL診断と最適化トラフィック再生とストレステストリアルタイム監査もサポートします。 詳しくは、「ApsaraDB RDS for MySQLインスタンスでのSQL Explorerおよび監査機能の使用」をご参照ください。

課金

  • SQL Explorer
    • SQL Explorer Trial Edition: 2020年8月20日以降、Alibaba CloudリージョンのSQL Explorer Trial Editionに新しい課金ルールが段階的に適用されます。

      SQL Explorer Trial Editionは、15日間の無料トライアルを提供します。 15日間の無料トライアルの有効期限が切れると、SQL Explorer機能は使用できなくなります。 SQL Explorer機能を引き続き使用する場合は、無料トライアルの有効期限が切れる前にSQL Explorer Paid Editionを購入することをお勧めします。

      説明 SQL Explorer Trial Editionは、RDSインスタンスごとに1回だけ有効にできます。
    • SQL Explorer有料版: 1時間ごとに課金されます。 料金はRDSインスタンスのリージョンによって異なります。
      • 1時間あたりのGBあたりの米ドル0.0015: 中国 (香港) 、米国 (シリコンバレー) 、および米国 (バージニア)
      • シンガポール (シンガポール) 、日本 (東京) 、ドイツ (フランクフルト) 、アラブ首長国連邦 (ドバイ) 、オーストラリア (シドニー) 、マレーシア (クアラルンプール) 、インド (ムンバイ) 、インドネシア (ジャカルタ) 、英国 (ロンドン) の1 GBあたりの0.0018米ドル
      • 1時間あたりのGBあたりのUSD 0.0012: 上記のリージョンを除くすべてのリージョン
  • SQL Explorerおよび監査: SQL Explorerおよび監査機能を有効にすると、SQL Explorerおよび監査機能に対して支払う必要がある料金がDatabase Autonomy Service (DAS) Professional Editionに請求されます。 料金はRDSインスタンスに請求されなくなりました。 詳細については、「ApsaraDB RDS for MySQLインスタンスでのSQL Explorerおよび監査機能の使用」および「DAS Professional Edition の価格設定」をご参照ください。

シナリオ

  • RDSインスタンスは、金融、セキュリティ、株式、公共サービス、保険など、高度なデータセキュリティが必要なセクターに使用されます。
  • RDSインスタンスのステータスを分析して問題のトラブルシューティングを行い、極端な状況でSQL文のパフォーマンスを確認する必要があります。
  • 極端な状況で実行されたSQL文に関する記録された情報を使用して、RDSインスタンスのデータを復元します。

SQL監査ログとバイナリログの違い

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

  • SQL監査ログはMySQLの監査ログに似ており、実行されたすべてのDQL、DML、およびDDL操作に関する情報が含まれています。 ApsaraDB RDSは、ネットワークプロトコル分析手法を使用して情報を取得します。 SQL Explorer機能は、実際のパラメーター値を解析しません。 大量のSQL文を実行してデータを照会すると、少数のレコードが失われる可能性があります。 その結果、SQL監査ログから取得される増分データが不正確になる可能性があります。
  • バイナリログには、実行されるすべての追加、削除、および変更操作と、データの復元に使用できる増分データが記録されます。 バイナリログファイルが生成された後、RDSインスタンスに一時的に保存されます。 ApsaraDB RDSは、サイズが指定されたしきい値に達するバイナリログファイルをObject Storage Service (OSS) バケットに定期的に転送します。 バイナリログファイルは、OSSバケットに7日間保存できます。 データが書き込まれているバイナリログファイルをOSSバケットに転送することはできません。 定期的な転送が完了すると、OSSバケットに転送できないバイナリログファイルが見つかる場合があります。 バイナリログはリアルタイムで生成されません。 ただし、バイナリログファイルを使用して、正確な増分データを取得することはできます。

使用上の注意

  • オンラインクエリの時間範囲は最大 24 時間です。 これは、SQL Explorer機能が大量のSQL文を記録するためです。 ログを使用して、RDSインスタンスで実行されるすべての操作を追跡できます。 オンラインクエリの時間範囲が24時間を超えると、クエリには長い時間がかかり、タイムアウトする可能性があります。
    説明 24時間を超える期間にわたってSQL監査ログを照会する場合は、SQL監査ログを非同期モードのファイルとしてエクスポートし、そのファイルをコンピューターにダウンロードすることをお勧めします。
  • オンラインクエリの条件の組み合わせを指定できます。 たとえば、キーワードフィールドにtest1 test2と入力して、キーワードtest1またはtest2を含むSQL監査ログを照会できます。
  • オンラインクエリではあいまい一致はサポートされていません。
  • オンラインクエリの各キーワードには、少なくとも4文字を含める必要があります。
  • SQL文あたりのサイズは2,048バイトに制限されています。 SQL文のサイズが2,048バイトを超えると、余分なバイトは記録できません。 SQL文のサイズが8,192バイトを超えると、SQL文は記録されません。
  • SQL Explorer Trial Editionを有効にした場合、DescribeSQLLogRecordsまたはDescribeSQLLogFiles操作を呼び出して監査ログを照会することはできません。

機能

  • SQL Explorer:
    • SQL監査ログ

      SQL Explorer機能は、RDSインスタンスで実行されたすべての操作を記録します。 SQL監査ログを使用して、障害と動作を分析し、セキュリティを監査できます。

    • 高度な検索

      SQL Explorer機能を使用すると、データベース、ユーザー、クライアントIPアドレス、スレッドID、実行期間、スキャンされた行数など、さまざまなディメンションのデータをクエリできます。 クエリ結果をエクスポートおよびダウンロードできます。

      説明
      • 1つのディメンションからデータをクエリする場合は、複数の検索条件を指定できます。 指定された検索条件は、論理ORを使用して評価されます。 たとえば、[ユーザー] フィールドでuser1とuser2の2つの検索条件を指定した場合、ApsaraDB RDSはuser1とuser2によって実行されるすべてのSQL文を返します。
      • 複数のディメンションのデータをクエリする場合、指定されたディメンションは論理積を使用して評価されます。 たとえば、[ユーザー] フィールドにuser1を入力し、[操作タイプ] パラメーターをSELECTに設定した場合、ApsaraDB RDSはuser1によって実行されるすべてのSELECTステートメントを返します。
      • あいまい一致はサポートされていません。
    • SQL分析

      SQL Explorer機能は、特定の期間に実行されたSQL文の監査ログを分析するための視覚化されたインタラクティブなソリューションを提供します。 これにより、通常のように実行されないSQL文を見つけ、パフォーマンスの問題を見つけることができます。

    • コスト削減

      SQL Explorer機能は、列型ストレージと圧縮テクノロジを使用して、SQL監査ログのストレージ使用量を削減します。 これにより、全体のストレージコストが約60% 削減されます。

  • SQL Explorerと監査。 詳細については、「ApsaraDB RDS for MySQLインスタンスでのSQL Explorerおよび監査機能の使用」をご参照ください。

SQL Explorer機能の有効化

説明 log ServiceのCloudLens for RDSアプリケーションでRDSインスタンスの監査ログ収集機能を有効にすると、RDSインスタンスのSQL Explorer機能が自動的に有効になります。 詳細については、「CloudLens For RDS」をご参照ください。
  1. RDSインスタンスにアクセスし、上部のリージョンを選択し、対象のRDSインスタンスのIDをクリックします。
  2. 左側のナビゲーションウィンドウで、[SQL エクスプローラー] をクリックして [SQLエクスプローラーと監査] ページに移動します。
  3. SQL Explorer機能を有効にします。
    • RDSインスタンスが次のリージョンのいずれかにある場合: 中国 (杭州) 、中国 (上海) 、中国 (青島) 、中国 (北京) 、中国 (深セン) 、中国 (張家口) 、中国 (フフホト) 、中国 (成都) 、中国 (広州) 、中国 (河原) 、中国 (ウランカブ) 、中国 (香港) 、シンガポール (シンガポール) 、マレーシア (クアラルンプール) およびインドネシア (ジャカルタ) では、[有効化] をクリックして [SQLエクスプローラーと監査] 機能を有効にします。
      説明 Alibaba CloudアカウントでDAS Professional Editionを有効化しない場合は、画面の指示に従ってDAS Professional Editionを有効化します。 詳細については、「t1915550.html#multiTask962」をご参照ください。
    • RDSインスタンスが上記のリージョンではなくリージョンにある場合は、[Official Edition] をクリックし、[Storage Duration] パラメーターを設定し、[OK] をクリックして [SQL Explorer] 機能を有効にします。
    説明
    • SQLエクスプローラーと監査機能のストレージ期間パラメーターのデフォルト値は30日です。 このパラメーターの値は、[サービス設定] ダイアログボックスで変更できます。
    • ApsaraDB RDSは、指定された保持期間より長く保存されたすべてのSQL監査ログを削除します。

SQL監査ログの保持期間の変更

  1. RDSインスタンスにアクセスし、上部のリージョンを選択し、対象のRDSインスタンスのIDをクリックします。
  2. 左側のナビゲーションウィンドウで、[SQL エクスプローラー] をクリックして [SQLエクスプローラーと監査] ページに移動します。
  3. [サービス設定] を設定します。
  4. 保存期間を選択し、[OK] をクリックします。

SQL Explorer機能を無効にする

説明 SQL Explorer機能を無効にすると、すべてのSQL監査ログが削除されます。 SQL Explorer機能を無効にする前に、SQL監査ログをファイルとしてエクスポートし、そのファイルをコンピューターにダウンロードすることをお勧めします。 SQL Explorer機能を再度有効にすると、SQL監査ログはSQL Explorer機能が有効になってから記録されます。
  1. RDSインスタンスにアクセスし、上部のリージョンを選択し、対象のRDSインスタンスのIDをクリックします。
  2. 左側のナビゲーションウィンドウで、[SQL エクスプローラー] をクリックして [SQLエクスプローラーと監査] ページに移動します。
  3. [検索] タブの [ログ] セクションで、[エクスポート] をクリックします。
  4. 表示されるダイアログボックスで、[エクスポート済みフィールド] および [エクスポート時間範囲] パラメーターを設定し、[OK] をクリックします。
  5. 監査ログがエクスポートされた後、[エクスポートされたログの表示] をクリックし、コンピューターにエクスポートしたSQL監査ログファイルをダウンロードします。
  6. [サービス設定] を設定します。
  7. [有効] の横にあるスイッチをオフにし、[OK] をクリックします。
    説明 log ServiceのCloudLens for RDSアプリケーションでRDSインスタンスの監査ログ収集機能を有効にすると、RDSインスタンスのSQL Explorer機能が自動的に有効になります。 したがって、RDSインスタンスの監査ログ収集機能も無効にする必要があります。 詳細については、「CloudLens For RDS」をご参照ください。

よくある質問

  • SQL Explorer機能によって生成されるログのサイズを取得するにはどうすればよいですか。
    ApsaraDB RDS コンソールにログインし、RDS インスタンスを見つけてから、[基本情報] ページを開いてください。 ページの [使用状況の統計] セクションでは、SQL Explorer機能によって生成されるログのサイズを表示できます。 ログサイズ
  • 生成されたSQL監査ログの特定の部分を削除できますか。

    いいえ。生成されたSQL監査ログの特定の部分を削除することはできません。 コストを削減するために、SQL Explorer機能を無効にできます。

  • ログアウトは何ですか! SQL Explorerページの [ログエントリ] セクションに表示されるSQL文は、
    ログアウト! SQL文は切断を示します。 ログアウトの [時間消費] 列に表示される時刻。 SQL文は、サーバーが最後にクライアントと対話した時点とログアウトした時点との間の時間差を指します。 SQL文が実行されます。 時間差の間、接続はアイドルのままである。 ステータス列の1158は、ネットワークが切断されていることを示します。 考えられる理由を次のリストに示します。
    • クライアント接続がタイムアウトします。
    • サーバーが突然切断されました。
    • 接続期間がinteractive_timeoutまたはwait_timeoutパラメーターの値を超えると、サーバーへの接続がリセットされます。
  • SQL Explorerページの [ログエントリ] セクションで、[クライアントIPアドレス] 列にパーセント記号 (%) が表示されるのはなぜですか。
    ストアドプロシージャを使用すると、SQL Explorerページの [ログエントリ] セクションの [クライアントIPアドレス] 列にパーセント記号 (%) が表示される場合があります。 この状況を再現するには、次の操作を実行します。
    説明 テストアカウントtest_userとテストデータベースtestdbが使用されます。
    1. ApsaraDB RDSコンソールで、データベースと標準アカウントを作成し、データベースに対する権限を標準アカウントに付与します。 詳細については、「Create databases and accounts for an ApsaraDB RDS for MySQL instance」をご参照ください。
    2. CLIを使用して、test_userアカウントを使用してRDSインスタンスに接続します。 詳細については、「データベースクライアントまたは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. 特権アカウントを使用してRDSインスタンスに接続します。 詳細については、「データベースクライアントまたは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() |
      -------- --------- ---------- ------------------------------------------------------ ------------------------------------------------------------------------- +