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

PolarDB:ブラックリストルールの設定

最終更新日:Aug 28, 2026

PolarDB コンソールでは、ブラックリストルールの作成、有効化、無効化、変更、削除できます。このトピックでは、ブラックリストルールとその設定方法について説明します。

ブラックリストルール

プロキシはブロック機能を提供します。ブラックリストルールを設定して、特定の種類の SQL ステートメントまたは個別の SQL ステートメントをブロックできます。

ブラックリストルールは、次の 3 つのモードで設定できます:

  • 固定ルールモード:コンソールでブラックリストルールを設定するための一般的なモードです。各ルールは、特定のアカウントとクラスターに適用できます。サポートされている一般的なルールのリストについては、「SQL ファイアウォールルールの設定」をご参照ください。

  • カスタムパラメータ化 SQL モード:このモードでは、SQL ステートメント内のすべての変数がパラメータ化され、生成されたテンプレートがデータベースに保存されます。その後、プロキシはこのテンプレートに一致するすべての SQL ステートメントをブロックします。

  • カスタム SQL モード:このモードでは、変数をパラメータ化することなく、特定の SQL ステートメントをそのままブロックします。パラメータが異なる SQL ステートメントは影響を受けません。

ブラックリストルールの作成

  1. PolarDB コンソールにログインします。
  2. 左上隅で、クラスターがデプロイされているリージョンを選択します。

  3. クラスターを見つけて、そのIDをクリックします。

  4. 左側メニューで、設定と管理 > セキュリティ管理 を選択します。

  5. [SQL ファイアウォール] タブで、左側の 新しい をクリックします。

  6. ルールの作成 ダイアログボックスで、目的のブラックリストモードに基づいてパラメータを設定します。

    • 固定ルールモード

      1. 固定ルールモード を選択した場合は、次のパラメータを設定します。

        表 1. SQL ファイアウォールルールのパラメータ

        パラメータ

        必須

        説明

        [基本情報]

        [ルール名]

        はい

        SQL ファイアウォールルールの名前です。名前は次の要件を満たす必要があります:

        • 文字と数字で構成されている必要があります。

        • 長さは 30 文字以内にする必要があります。

        [説明]

        いいえ

        識別と管理を容易にするための説明です。

        説明

        説明は 64 文字以内で入力してください。

        エンドポイント

        はい

        ルールが適用されるエンドポイントです。

        [設定]

        [ルールタイプ]

        はい

        [ブラックリストルール] を選択します。

        [現在のモード]

        いいえ

        SQL ファイアウォールルールのモードです。このパラメータは常に [保護モード] に設定され、ブラックリストルールに一致する SQL ステートメントがブロックされることを意味します。

        [データベースアカウント名]

        いいえ

        このルールが適用されるデータベースアカウントです。次のオプションがあります:

        • [すべてのアカウント]:クラスター内のすべてのデータベースアカウントにルールを適用します。テキストボックスに何も入力する必要はありません。

        • [含む]:指定されたデータベースアカウントにのみルールを適用します。1 つ以上のアカウント名をカンマ区切りで入力します。

        • [含まない]:指定したアカウントを除く、クラスター内のすべてのデータベースアカウントにルールを適用します。1 つ以上のアカウント名をカンマ区切りで入力します。

        説明

        入力するデータベースアカウント名は、次のいずれかの形式で入力する必要があります:

        • AccountName。例:user

        • AccountName@IPAddress。例:user@10.0.0.0

        [アスタリスク (*) が設定された SQL をブロック]

        いいえ

        アスタリスク (*) を含む SQL ステートメントをブロックします。有効な値:

        • [有効]:アスタリスク (*) を含む SQL ステートメントをブロックします。

        • [無効]:アスタリスク (*) を含む SQL ステートメントをブロックしません。

        [特定のタイプの SQL をブロック]

        いいえ

        特定の種類の SQL ステートメントをブロックします。有効な値:

        • [有効]:特定の種類の SQL ステートメントをブロックします。特定のタイプの SQL をブロック を有効にする場合は、少なくとも 1 つの種類を選択する必要があります。サポートされている種類:

          • CREATE

          • DROP

          • ALTER

          • TRUNCATE

          • RENAME

          • INSERT

          • UPDATE

          • SELECT

          • DELETE

        • [無効]:特定の種類の SQL ステートメントをブロックしません。

        [WHERE のない SQL をブロック]

        いいえ

        WHERE 句のない SQL ステートメントをブロックします。有効な値:

        • [有効]:WHERE 句のない指定された種類の SQL ステートメントをブロックします。WHERE のない SQL をブロック を有効にする場合は、少なくとも 1 つの種類を選択する必要があります。サポートされている種類:

          • UPDATE

          • SELECT

          • DELETE

        • [無効]:WHERE 句のない SQL ステートメントをブロックしません。

        説明

        このパラメータは、少なくとも 1 つのテーブル名を含む SELECTUPDATE、および DELETE ステートメントにのみ適用されます。プロキシは SELECT 1; のようなステートメントをブロックしません。

        [特定の列を持つ SQL をブロック]

        いいえ

        特定のカラム名を含む SQL ステートメントをブロックします。有効な値:

        • [有効]:特定のカラム名を含む SQL ステートメントをブロックします。特定の列を持つ SQL をブロック を有効にする場合は、次のオプションが利用可能です:

          • [すべて]:クラスター内のすべてのカラム名にルールを適用します。テキストボックスに何も入力する必要はありません。

          • [以下を含む]:指定されたカラム名にのみルールを適用します。1 つ以上のカラム名をカンマ (,) で区切って入力する必要があります。

          • [以下を含まない]:指定したカラムを除く、クラスター内のすべてのカラム名にルールを適用します。1 つ以上のカラム名をカンマ (,) で区切って入力する必要があります。

        • [無効]:特定のカラム名を含む SQL ステートメントをブロックしません。

        [特定の関数を持つ SQL をブロック]

        いいえ

        特定の関数を使用する SQL ステートメントをブロックします。有効な値:

        • [有効]:特定の関数を使用する SQL ステートメントをブロックします。特定の関数を持つ SQL をブロック を有効にする場合は、次のオプションが利用可能です:

          • [すべて]:クラスターのデータベースで実行されるすべての関数にルールを適用します。テキストボックスに何も入力する必要はありません。

          • [以下を含む]:指定された関数にのみルールを適用します。1 つ以上の関数名をカンマ (,) で区切って入力する必要があります。

          • [以下を含まない]:指定した関数を除く、すべての関数にルールを適用します。1 つ以上の関数名をカンマ (,) で区切って入力する必要があります。

        • [無効]:特定の関数を使用する SQL ステートメントをブロックしません。

        [特定の関数によって参照される特定の列を持つ SQL をブロック]

        いいえ

        特定の関数を含み、特定のカラム名を参照する SQL ステートメントをブロックします。有効な値:

        • [有効]:特定の関数を含み、特定のカラム名を参照する SQL ステートメントをブロックします。特定の関数によって参照される特定の列を持つ SQL をブロック を有効にする場合は、1 つ以上の 関数名列名 の値を入力する必要があります。具体的には:

          • 関数名以下を含む に設定され、列名以下を含む に設定されている場合、ルールはクラスター内で特定の関数を使用し、特定のカラム名を参照する SQL ステートメントに適用されます。

          • 関数名以下を含む に設定され、列名以下を含まない に設定されている場合、ルールは指定された関数を、指定されたカラム以外の任意のカラムに対して使用するステートメントに適用されます。

          • 関数名以下を含まない に設定され、列名以下を含む に設定されている場合、ルールは指定されたカラムに対して、指定された関数以外の任意の関数を使用するステートメントに適用されます。

          • 関数名以下を含まない を選択し、列名 にも 以下を含まない を選択した場合、ルールは、クラスター内で指定されたもの以外の関数を使用し、かつ指定されたもの以外のカラムを参照する SQL ステートメントに適用されます。

        • [無効]:特定の関数を含み、特定のカラム名を参照する SQL ステートメントをブロックしません。

      2. ルールを設定した後、確定 をクリックします。

    • カスタムパラメータ化 SQL モード

      1. カスタムパラメータ化 SQL モード を選択した場合は、必須パラメータを設定します。詳細については、「SQL ファイアウォールルールのパラメータ」をご参照ください。

        説明

        カスタムパラメータ化 SQL モード を使用する場合、設定 でブロックルールを有効にする必要はありません。

      2. ルールを設定した後、確定 をクリックします。

      3. 前の手順の [データベースアカウント名] を使用して、指定されたデータベースエンドポイントに接続します。SQL ステートメントをブロックするには、ステートメントの前に ヒント コマンド /* store_to_blacklist */ を追加します。たとえば、SQL ステートメント select id from sqlblack_test where id = 1; をブロックするには、次のコマンドを実行します:

        /* store_to_blacklist */ select id from sqlblack_test where id = 1;

        パラメータ化されたテンプレートは次のとおりです:

        select id from sqlblack_test where id = ?

        このテンプレートでは、? は任意の値を示します。

        約 5 秒後、プロキシはこのアカウントからテンプレートに一致するすべての SQL ステートメントをブロックします。次のエラーが返されます:

        ERROR 1141 (HY000): This SQL is rejected by SQL Firewall. Access denied for user 'xxx'@'x.x.x.x' to database 'xzh': This SQL is on blacklist bl_test.

        このメッセージの bl_test は、ブラックリストルールの名前です。

      説明
      • MySQL コマンドラインクライアントを使用する場合、-c オプションを追加する必要があります。そうしないと、ヒント コマンドは有効になりません。

      • ルールは約 5 秒後に有効になります。

    • カスタム SQL モード

      1. カスタム SQL モード を選択した場合は、必須パラメータを設定します。詳細については、「SQL ファイアウォールルールのパラメータ」をご参照ください。

        説明

        カスタム SQL モード を使用する場合、設定 でブロックルールを有効にする必要はありません。

      2. ルールを設定した後、確定 をクリックします。

      3. 前の手順の [データベースアカウント名] を使用して、指定されたデータベースエンドポイントに接続します。SQL ステートメントをブロックするには、ステートメントの前に ヒント コマンド /* original_store_to_blacklist */ を追加します。たとえば、ステートメント update t set k = 2 where id = 2; をブロックするには、次のコマンドを実行します:

        /* original_store_to_blacklist */ update t set k = 2 where id = 2;

        約 5 秒後、このアカウントを使用して SQL ステートメント update t set k = 2 where id = 2; をそのまま実行すると、プロキシはステートメントをブロックします。他の SQL ステートメントは影響を受けません。次のエラーが返されます:

        ERROR 1141 (HY000): This SQL is rejected by SQL Firewall. Access denied for user 'xxx'@'x.x.x.x' to database 'xzh': This SQL is on blacklist bl_test.

        このメッセージの bl_test は、ブラックリストルールの名前です。

      説明
      • MySQL コマンドラインクライアントを使用する場合、-c オプションを追加する必要があります。そうしないと、ヒント コマンドは有効になりません。

      • ルールは約 5 秒後に有効になります。

ブラックリストルールの有効化または無効化

  1. PolarDB コンソールにログインします。
  2. 左上隅で、クラスターがデプロイされているリージョンを選択します。

  3. クラスターを見つけて、そのIDをクリックします。

  4. 左側メニューで、設定と管理 > セキュリティ管理 を選択します。

  5. [SQL ファイアウォール] タブで、有効化または無効化するルールを見つけ、有効化/無効化 スイッチをクリックします。

    説明

    リストで複数のルールを選択し、リストの下部にある 有効化 または 無効 をクリックして、一括で有効化または無効化することもできます。

  6. 表示される 有効化 または 無効 ダイアログボックスで、確定 をクリックします。

ブラックリストルールの変更

  1. PolarDB コンソールにログインします。
  2. 左上隅で、クラスターがデプロイされているリージョンを選択します。

  3. クラスターを見つけて、そのIDをクリックします。

  4. 左側メニューで、設定と管理 > セキュリティ管理 を選択します。

  5. [SQL ファイアウォール] タブで、変更するルールを見つけ、操作 列の Modify をクリックします。ルールの変更 ダイアログボックスで、パラメータを変更します。パラメータの詳細については、「SQL ファイアウォールルールのパラメータ」をご参照ください。

    説明

    ルールの [ルール名] は変更できません。

  6. ルールを変更した後、はい をクリックします。

説明

コンソールからは、カスタムパラメータ化 SQL モード を使用して作成されたルールのパラメータ化された SQL ステートメントや、カスタム SQL モード を使用して作成されたルールの特定の SQL ステートメントは変更できません。これらのステートメントを変更するには、データベーステーブルから削除して再度追加する必要があります。

ブラックリストルールの削除

  1. PolarDB コンソールにログインします。
  2. 左上隅で、クラスターがデプロイされているリージョンを選択します。

  3. クラスターを見つけて、そのIDをクリックします。

  4. 左側メニューで、設定と管理 > セキュリティ管理 を選択します。

  5. [SQL ファイアウォール] タブで、削除するルールを見つけ、操作 列の 削除 をクリックします。

    説明

    リストで複数のルールを選択し、リストの下部にある 削除 をクリックして、一括で削除することもできます。

  6. 表示される 削除 ダイアログボックスで、確定 をクリックします。

カスタムモードのルールの削除

  • カスタムパラメータ化 SQL モード のブラックリストルール

    カスタムパラメータ化 SQL モード のブラックリストルールは、次のいずれかの方法で削除できます:

    • カスタムパラメータ化 SQL モード のブラックリストルールは、ブラックリストルールの有効化または無効化またはブラックリストルールの削除で削除できます。

      説明

      コンソールでブラックリストルールを無効化するだけで、対応するパラメータ化された SQL ステートメントを proxy_auditing.sql_list テーブルから削除しない場合、同じアカウントでルールを再度有効化すると、ルールは再び有効になります。

    • 特権管理者アカウントを使用してエンドポイントのプライマリノードに接続し、proxy_auditing.sql_list テーブルから対応する SQL ステートメントを削除します。約 5 秒後、プロキシはそのステートメントをブロックしなくなります。

      説明

      DROP コマンドを使用してテーブルを削除しないでください。

  • カスタム SQL モード のブラックリストルール

    カスタム SQL モード のブラックリストルールは、次のいずれかの方法で削除できます:

    • カスタム SQL モード のブラックリストルールを管理するには、ブラックリストルールの有効化または無効化またはブラックリストルールの削除を実行できます。

      説明

      コンソールでブラックリストルールを無効化するだけで、対応する SQL ステートメントを proxy_auditing.org_sql_list テーブルから削除しない場合、同じアカウントでルールを再度有効化すると、ルールは再び有効になります。

    • 特権管理者アカウントを使用してエンドポイントのプライマリノードに接続し、proxy_auditing.org_sql_list テーブルから対応する SQL ステートメントを削除します。約 5 秒後、プロキシはそのステートメントをブロックしなくなります。

      説明

      DROP コマンドを使用してテーブルを削除しないでください。