diff options
author | Vicențiu Ciorbaru <vicentiu@mariadb.org> | 2015-03-21 19:54:06 +0200 |
---|---|---|
committer | Vicențiu Ciorbaru <vicentiu@mariadb.org> | 2015-03-21 19:56:31 +0200 |
commit | 4fbba0982436aa871b57facc008a18527c10aacc (patch) | |
tree | 5ac7e68dc1aebd8e4390644169da17a1af88e554 | |
parent | 3578419b778876fc1e7ec2a6994b9273b5d2b166 (diff) | |
download | mariadb-git-4fbba0982436aa871b57facc008a18527c10aacc.tar.gz |
MDEV-7813 analyze_stmt fails with --embedded flag set10.1-MDEV-7813
Moved the privilege checking code which does not apply for embedded
to a separate test case.
-rw-r--r-- | mysql-test/r/analyze_stmt.result | 40 | ||||
-rw-r--r-- | mysql-test/r/analyze_stmt_privileges.result | 40 | ||||
-rw-r--r-- | mysql-test/t/analyze_stmt.test | 47 | ||||
-rw-r--r-- | mysql-test/t/analyze_stmt_privileges.test | 49 |
4 files changed, 89 insertions, 87 deletions
diff --git a/mysql-test/r/analyze_stmt.result b/mysql-test/r/analyze_stmt.result index 4e5af76e64d..50063324faf 100644 --- a/mysql-test/r/analyze_stmt.result +++ b/mysql-test/r/analyze_stmt.result @@ -315,43 +315,3 @@ id select_type table type possible_keys key key_len ref rows r_rows filtered r_f 1 SIMPLE t1 ALL NULL NULL NULL NULL 10 10.00 100.00 100.00 Using where 1 SIMPLE t2 ref a a 5 test.t1.a 2 0.20 100.00 100.00 Using index drop table t1,t2; -# -# MDEV-7025 and MDEV-7027 ANALYZE SELECT/INSERT/UPDATE/DELETE from a -# view does not check access permissions on the underlying table -# -create database db; -use db; -create table t1 (i int, c varchar(8)); -insert into t1 values (1,'foo'),(2,'bar'),(3,'baz'),(4,'qux'); -create view v1 as select * from t1 where i > 1; -grant ALL on db.v1 to u1@localhost; -connect con1,localhost,u1,,; -select * from db.t1; -ERROR 42000: SELECT command denied to user 'u1'@'localhost' for table 't1' -explain select * from db.t1; -ERROR 42000: SELECT command denied to user 'u1'@'localhost' for table 't1' -analyze select * from db.t1; -ERROR 42000: SELECT command denied to user 'u1'@'localhost' for table 't1' -select * from db.v1; -i c -2 bar -3 baz -4 qux -explain select * from db.v1; -ERROR HY000: ANALYZE/EXPLAIN/SHOW can not be issued; lacking privileges for underlying table -analyze select * from db.v1; -ERROR HY000: ANALYZE/EXPLAIN/SHOW can not be issued; lacking privileges for underlying table -UPDATE db.v1 SET i = 5; -explain UPDATE db.v1 SET i = 5; -ERROR HY000: ANALYZE/EXPLAIN/SHOW can not be issued; lacking privileges for underlying table -analyze UPDATE db.v1 SET i = 5; -ERROR HY000: ANALYZE/EXPLAIN/SHOW can not be issued; lacking privileges for underlying table -DELETE FROM db.v1 WHERE i = 5; -explain DELETE FROM db.v1 WHERE i = 5; -ERROR HY000: ANALYZE/EXPLAIN/SHOW can not be issued; lacking privileges for underlying table -analyze DELETE FROM db.v1 WHERE i = 5; -ERROR HY000: ANALYZE/EXPLAIN/SHOW can not be issued; lacking privileges for underlying table -disconnect con1; -connection default; -drop user u1@localhost; -drop database db; diff --git a/mysql-test/r/analyze_stmt_privileges.result b/mysql-test/r/analyze_stmt_privileges.result new file mode 100644 index 00000000000..d382b0b3bb6 --- /dev/null +++ b/mysql-test/r/analyze_stmt_privileges.result @@ -0,0 +1,40 @@ +# +# MDEV-7025 and MDEV-7027 ANALYZE SELECT/INSERT/UPDATE/DELETE from a +# view does not check access permissions on the underlying table +# +create database db; +use db; +create table t1 (i int, c varchar(8)); +insert into t1 values (1,'foo'),(2,'bar'),(3,'baz'),(4,'qux'); +create view v1 as select * from t1 where i > 1; +grant ALL on db.v1 to u1@localhost; +connect con1,localhost,u1,,; +select * from db.t1; +ERROR 42000: SELECT command denied to user 'u1'@'localhost' for table 't1' +explain select * from db.t1; +ERROR 42000: SELECT command denied to user 'u1'@'localhost' for table 't1' +analyze select * from db.t1; +ERROR 42000: SELECT command denied to user 'u1'@'localhost' for table 't1' +select * from db.v1; +i c +2 bar +3 baz +4 qux +explain select * from db.v1; +ERROR HY000: ANALYZE/EXPLAIN/SHOW can not be issued; lacking privileges for underlying table +analyze select * from db.v1; +ERROR HY000: ANALYZE/EXPLAIN/SHOW can not be issued; lacking privileges for underlying table +UPDATE db.v1 SET i = 5; +explain UPDATE db.v1 SET i = 5; +ERROR HY000: ANALYZE/EXPLAIN/SHOW can not be issued; lacking privileges for underlying table +analyze UPDATE db.v1 SET i = 5; +ERROR HY000: ANALYZE/EXPLAIN/SHOW can not be issued; lacking privileges for underlying table +DELETE FROM db.v1 WHERE i = 5; +explain DELETE FROM db.v1 WHERE i = 5; +ERROR HY000: ANALYZE/EXPLAIN/SHOW can not be issued; lacking privileges for underlying table +analyze DELETE FROM db.v1 WHERE i = 5; +ERROR HY000: ANALYZE/EXPLAIN/SHOW can not be issued; lacking privileges for underlying table +disconnect con1; +connection default; +drop user u1@localhost; +drop database db; diff --git a/mysql-test/t/analyze_stmt.test b/mysql-test/t/analyze_stmt.test index 87b1616c816..0355b4e4e0f 100644 --- a/mysql-test/t/analyze_stmt.test +++ b/mysql-test/t/analyze_stmt.test @@ -258,50 +258,3 @@ insert into t2 values (0),(1); analyze select * from t1 straight_join t2 force index(a) where t2.a=t1.a; drop table t1,t2; - -# Analyze <statement> privilege checks testcase. ---echo # ---echo # MDEV-7025 and MDEV-7027 ANALYZE SELECT/INSERT/UPDATE/DELETE from a ---echo # view does not check access permissions on the underlying table ---echo # ---enable_connect_log -create database db; -use db; -create table t1 (i int, c varchar(8)); -insert into t1 values (1,'foo'),(2,'bar'),(3,'baz'),(4,'qux'); -create view v1 as select * from t1 where i > 1; -grant ALL on db.v1 to u1@localhost; - ---connect (con1,localhost,u1,,) - ---error ER_TABLEACCESS_DENIED_ERROR -select * from db.t1; ---error ER_TABLEACCESS_DENIED_ERROR -explain select * from db.t1; ---error ER_TABLEACCESS_DENIED_ERROR -analyze select * from db.t1; - -select * from db.v1; ---error ER_VIEW_NO_EXPLAIN -explain select * from db.v1; ---error ER_VIEW_NO_EXPLAIN -analyze select * from db.v1; - -UPDATE db.v1 SET i = 5; ---error ER_VIEW_NO_EXPLAIN -explain UPDATE db.v1 SET i = 5; ---error ER_VIEW_NO_EXPLAIN -analyze UPDATE db.v1 SET i = 5; - -DELETE FROM db.v1 WHERE i = 5; ---error ER_VIEW_NO_EXPLAIN -explain DELETE FROM db.v1 WHERE i = 5; ---error ER_VIEW_NO_EXPLAIN -analyze DELETE FROM db.v1 WHERE i = 5; - - ---disconnect con1 ---connection default - -drop user u1@localhost; -drop database db; diff --git a/mysql-test/t/analyze_stmt_privileges.test b/mysql-test/t/analyze_stmt_privileges.test new file mode 100644 index 00000000000..9dd8f274fce --- /dev/null +++ b/mysql-test/t/analyze_stmt_privileges.test @@ -0,0 +1,49 @@ +# Analyze <statement> privilege checks testcase. +--source include/not_embedded.inc + +--echo # +--echo # MDEV-7025 and MDEV-7027 ANALYZE SELECT/INSERT/UPDATE/DELETE from a +--echo # view does not check access permissions on the underlying table +--echo # +--enable_connect_log +create database db; +use db; +create table t1 (i int, c varchar(8)); +insert into t1 values (1,'foo'),(2,'bar'),(3,'baz'),(4,'qux'); +create view v1 as select * from t1 where i > 1; +grant ALL on db.v1 to u1@localhost; + +--connect (con1,localhost,u1,,) + +--error ER_TABLEACCESS_DENIED_ERROR +select * from db.t1; +--error ER_TABLEACCESS_DENIED_ERROR +explain select * from db.t1; +--error ER_TABLEACCESS_DENIED_ERROR +analyze select * from db.t1; + +--sorted_result +select * from db.v1; +--error ER_VIEW_NO_EXPLAIN +explain select * from db.v1; +--error ER_VIEW_NO_EXPLAIN +analyze select * from db.v1; + +UPDATE db.v1 SET i = 5; +--error ER_VIEW_NO_EXPLAIN +explain UPDATE db.v1 SET i = 5; +--error ER_VIEW_NO_EXPLAIN +analyze UPDATE db.v1 SET i = 5; + +DELETE FROM db.v1 WHERE i = 5; +--error ER_VIEW_NO_EXPLAIN +explain DELETE FROM db.v1 WHERE i = 5; +--error ER_VIEW_NO_EXPLAIN +analyze DELETE FROM db.v1 WHERE i = 5; + + +--disconnect con1 +--connection default + +drop user u1@localhost; +drop database db; |