diff options
Diffstat (limited to 'mysql-test/t')
-rw-r--r-- | mysql-test/t/analyze_stmt.test | 47 | ||||
-rw-r--r-- | mysql-test/t/analyze_stmt_privileges.test | 49 |
2 files changed, 49 insertions, 47 deletions
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; |