使用
flagIN
,
flagOUT
, and
apply
这是决赛
mysql_query_rules
/* only show the first character in column_name */
INSERT INTO mysql_query_rules (rule_id,active,username,schemaname,flagIN,match_pattern,re_modifiers,flagOUT,replace_pattern,apply)
VALUES (1,1,'developer','my_db',0,'(\(?)(`?\w+`?\.)?\`?column_name\`?(\)?)([ ,\n])','caseless,global',6, "\1CONCAT(LEFT(\2column_name,1),REPEAT('X',CHAR_LENGTH(column_name)-1))\3 column_name\4",0);
/* masking the last 3 characters in second_column_name */
INSERT INTO mysql_query_rules (rule_id,active,username,schemaname,flagIN,match_pattern,re_modifiers,flagOUT,replace_pattern,apply)
VALUES (2,1,'developer','my_db',6,'(\(?)(`?\w+`?\.)?\`?second_column_name\`?(\)?)([ ,\n])','caseless,global',NULL,
"\1CONCAT(LEFT(\2second_column_name,CHAR_LENGTH(second_column_name)-3),REPEAT('X',3))\3 second_column_name\4",1);
-
弗拉金
,
信号旗
应用
-这些允许我们创建“规则链”
0,并且在开始时仅考虑flagIN=0的规则。什么时候
找到特定查询的匹配规则后,将计算flagOUT
如果不为NULL,则查询将使用中指定的标志进行标记
当前链,并进入一个新的规则链,其中flagIN作为
新输入标志。如果flagOUT与flagIN匹配,则查询将被删除
使用所述flagIN根据第一条规则重新评估。这
直到不再存在匹配规则,或将“应用”设置为1时发生