メインコンテンツまでスキップ

ADD SQLBLACKLIST

ADD SQLBLACKLIST

概要

SQLブラックリストに正規表現を追加し、特定のSQLパターンを禁止します。SQLブラックリスト機能が有効にされている場合、StarRocksは実行されるすべてのSQL文をブラックリストの正規表現と比較します。ブラックリストのいずれかの正規表現に一致するSQLは実行されず、エラーが返されます。これにより、特定のSQLがクラスタのクラッシュや予期しない動作を引き起こすのを防止します。

SQLブラックリストの詳細については、SQLブラックリストの管理を参照してください。

注意

ADMIN権限を持つユーザーのみがSQL正規表現をSQLブラックリストに追加できます。

構文

ADD SQLBLACKLIST "<sql_reg_expr>"

パラメーター

sql_reg_expr: 特定のSQLパターンを指定するために使用される正規表現です。SQL文内の特殊文字と正規表現内の特殊文字を区別するために、SQL文内の特殊文字(例:()+)の前にエスケープ文字\を使用する必要があります。ただし、()はSQL文でよく使用されるため、StarRocksはSQL文内の()を直接識別できます。()に対してはエスケープ文字を使用する必要はありません。

例1: count(\*)をSQLブラックリストに追加する。

mysql> ADD SQLBLACKLIST "select count(\\*) from .+";

例2: count(distinct )をSQLブラックリストに追加する。

mysql> ADD SQLBLACKLIST "select count(distinct .+) from .+";

例3: order by limit x, y, 1 <= x <=7, 5 <=y <=7をSQLブラックリストに追加する。

mysql> ADD SQLBLACKLIST "select id_int from test_all_type_select1 
order by id_int
limit [1-7], [5-7]";

例4: 複雑なSQL正規表現をSQLブラックリストに追加する。この例では、SQL文内の*-に対してエスケープ文字を使用する方法を示しています。

mysql> ADD SQLBLACKLIST 
"select id_int \\* 4, id_tinyint, id_varchar
from test_all_type_nullable
except select id_int, id_tinyint, id_varchar
from test_basic
except select (id_int \\* 9 \\- 8) \\/ 2, id_tinyint, id_varchar
from test_all_type_nullable2
except select id_int, id_tinyint, id_varchar
from test_basic_nullable";