用于EagleEye3.0 规则集漏报和误报测试的示例项目,项目收集于github和gitee
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
2.3 KiB

5 months ago
# privileges
create database mysqltest1;
use mysqltest1;
create table t1(pub int, priv int);
insert into t1 values(1,2);
analyze table t1;
Table Op Msg_type Msg_text
mysqltest1.t1 analyze status OK
CREATE USER user1@localhost;
GRANT SELECT (pub) ON mysqltest1.t1 TO user1@localhost;
use mysqltest1;
select pub from t1;
pub
1
select priv from t1;
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for column 'priv' in table 't1'
select * from (select pub from t1) as dt;
pub
1
explain select * from (select pub from t1) as dt;
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 1 100.00 NULL
Warnings:
Note 1003 /* select#1 */ select `mysqltest1`.`t1`.`pub` AS `pub` from `mysqltest1`.`t1`
select /*+ merge(dt) */ * from (select priv from t1) as dt;
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for column 'priv' in table 't1'
select /*+ no_merge(dt) */ * from (select priv from t1) as dt;
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for column 'priv' in table 't1'
explain select * from (select priv from t1) as dt;
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for column 'priv' in table 't1'
with qn as (select pub from t1) select * from qn;
pub
1
explain with qn as (select pub from t1) select * from qn;
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 1 100.00 NULL
Warnings:
Note 1003 /* select#1 */ select `mysqltest1`.`t1`.`pub` AS `pub` from `mysqltest1`.`t1`
with qn as (select priv from t1) select /*+ merge(qn) */ * from qn;
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for column 'priv' in table 't1'
with qn as (select priv from t1) select /*+ no_merge(qn) */ * from qn;
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for column 'priv' in table 't1'
explain with qn as (select priv from t1) select * from qn;
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for column 'priv' in table 't1'
with qn2 as (with qn as (select pub from t1) select * from qn)
select * from qn2;
pub
1
with qn2 as (with qn as (select priv from t1) select * from qn)
select * from qn2;
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for column 'priv' in table 't1'
drop user user1@localhost;
drop database mysqltest1;