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

PolarDB:SQL ファイアウォール

最終更新日:Nov 09, 2025

PolarDB PolarProxy は SQL ファイアウォール機能を提供します。この機能は、ブラックリストとホワイトリストのルールを設定した後、許可およびブロックする SQL 文を識別できます。このトピックでは、SQL ファイアウォール機能について説明します。

説明

SQL ファイアウォール機能はメンテナンスフェーズにあり、機能の更新は行われなくなりました。代替として、Database Autonomy Service (DAS) のSQL スロットリング機能を使用してください。

背景情報

データベースが不正にアクセスされると、攻撃者はデータベース内のすべてのデータを取得する可能性があります。日常の O&M 操作であっても、WHERE 句を含まない DELETE 文を実行すると、データベース内のテーブルが誤って削除される可能性があります。

このようなハイリスクな操作を防ぐために、PolarProxy は SQL ファイアウォール機能を提供します。この機能により、ブラックリストとホワイトリストのルールを設定して SQL 文を許可およびブロックできます。次の図は、SQL ファイアウォール機能の仕組みを示しています。

前提条件

PolarDB PolarProxy が V2.5.1 以降であること。PolarProxy の現在のバージョンを表示してアップグレードする方法の詳細については、「リビジョンバージョンの管理」をご参照ください。

制限事項

  • SQL ファイアウォール機能を有効にすると、PolarProxy は現在のクラスターに database:proxy_auditing という名前のデータベースと、sql_list および org_sql_list という名前の 2 つのテーブルを作成します。sql_list テーブルにはブラックリストとホワイトリストのルールにあるパラメーター化された SQL 文が格納され、org_sql_list テーブルにはブラックリストのルールにある SQL 文が保存されます。各テーブルには最大 500,000 件の SQL 文を保存できます。

  • ルールを初めて作成したとき、そのルールは新しい接続にのみ適用されます。ルールが変更された後、既存の接続に対しては 5 秒後に有効になります。

  • カスタムパラメーター化 SQL モードまたはカスタム SQL モードで作成されたブラックリストまたはホワイトリストのルール内の SQL 文は、ルールの作成時にはブロックされませんが、ルールの作成後にブロックされます。

  • 同じアカウントとエンドポイントに対して、ブラックリストルールとホワイトリストルールの両方を有効にすることはできません。

  • 複数文はサポートされていません。すべての複数文はブロックされます。

  • PolarProxy によって解析できない SQL 文は、ファイアウォールの監査ログに記録されますが、ブロックはされません。たとえば、SELECT 文に構文エラーが含まれている場合、その文はブロックされません。

  • カスタムパラメーター化 SQL モードまたはカスタム SQL モードで作成されたブラックリストまたはホワイトリストのルール内の SQL 文は、ブラックリストまたはホワイトリストのルールが無効化または削除されても保持されます。ブラックリストまたはホワイトリストのルールが再度有効化された場合、そのルールは同じアカウントに引き続き適用されます。ブラックリストまたはホワイトリストのルールを完全に削除したい場合は、スーパー管理者アカウントを使用してクラスターのプライマリノードに接続し、SQL 文を削除できます。

  • ブラックリストとホワイトリストのルールは、一般的な SQL コマンド (3) または PREPARE コマンド (22) のみをブロックできます。他のコマンドはブロックされません。たとえば、MySQL コマンドラインを使用してクラスターに接続した後、USE db; 文は MySQL コマンドラインによって COM_INIT_DB(1) コマンドに変換されます。このコマンドはブロックされません。

パフォーマンスへの影響

  • ブラックリストルール機能を有効にすると、10% 未満のパフォーマンスオーバーヘッドが発生します。

  • ホワイトリストルール機能が有効で、アラートログが生成されない場合、約 10% のパフォーマンスオーバーヘッドが発生します。

  • 実行されたすべての SQL 文に対してアラートログが生成される場合、通常のビジネス条件下ではリクエストレートが 20% から 30% 減少します。ただし、すべての SQL 文がアラートログをトリガーするわけではありません。一部の SQL 文のみがアラートログをトリガーします。したがって、通常のビジネス条件下では、ブラックリストまたはホワイトリストのルール機能はリクエストレートに大きな影響を与えません。

ブラックリストまたはホワイトリストのルール機能

  • ブラックリストルール機能: ブラックリストルールを設定して、指定されたタイプの SQL 文または特定の SQL 文をブロックできます。ブラックリストルールに追加された SQL 文が実行されると、PolarProxy はその SQL 文をブロックします。詳細については、「ブラックリストルールを設定する」をご参照ください。

  • ホワイトリストルール機能: ビジネス関連の SQL 文は、ホワイトリストルールで許可される前にトレーニングされます。保護モードが有効になると、ホワイトリストルールに追加された SQL 文のみが許可されます。詳細については、「ホワイトリストルールを設定する」をご参照ください。