跳到主要内容
版本:Latest-3.3

ADD SQLBLACKLIST

功能

将一个 SQL 正则表达式添加至 SQL 黑名单。启用 SQL 黑名单功能后,StarRocks 会将所有需要执行的 SQL 语句与黑名单中的 SQL 正则表达式进行比较。StarRocks 不会执行与黑名单中任何正则表达式相匹配的 SQL,并返回错误。

有关 SQL 黑名单的更多信息,请参阅 管理 SQL 黑名单

提示
  • 该操作需要 SYSTEM 级的 BLACKLIST 权限。请参考 GRANT 为用户赋权。
  • 当前 StarRocks 支持将 SELECT 语句加入 SQL 黑名单。

语法

ADD SQLBLACKLIST "<sql_reg_expr>"

参数说明

sql_reg_expr:用于指定 SQL 语句的正则表达式。为了区分 SQL 语句中的特殊字符和正则表达式中的特殊字符,您需要使用转义符(\)作为 SQL 语句中特殊字符的前缀,如 () 以及 +。由于 () 在 SQL 语句中经常被使用,StarRocks 可以直接识别 SQL 语句中的 ()。所以您无需为 () 添加转义符。

示例

示例一:将 count(\*) 添加到 SQL 黑名单。

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

示例二:将 count(distinct ) 添加到 SQL 黑名单。

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

示例三:将 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]";

示例四:将复杂的 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";