mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 20:12:31 +01:00
72ba96a48e
Tests with checking metadata or that cannot be run with the view-protocol are excluded from --view-protocol. For tests that do not allow the use of an additional connection, the util connection is disabled with "--disable_service_connection". Also cases with bugs for --view-protocol are disabled.
98 lines
3.3 KiB
Text
98 lines
3.3 KiB
Text
source include/not_embedded.inc;
|
|
source include/have_perfschema.inc;
|
|
|
|
--disable_service_connection
|
|
|
|
#
|
|
# LOCK TABLES and privileges on views
|
|
#
|
|
create database mysqltest1;
|
|
create database mysqltest2;
|
|
create database mysqltest3;
|
|
create user invoker@localhost;
|
|
create user definer@localhost;
|
|
grant select,show view on mysqltest1.* to invoker@localhost;
|
|
grant select,show view on mysqltest1.* to definer@localhost;
|
|
grant select,show view on mysqltest2.* to invoker@localhost;
|
|
grant select,show view on mysqltest2.* to definer@localhost;
|
|
grant select,show view on mysqltest3.* to invoker@localhost;
|
|
grant select on performance_schema.* to definer@localhost;
|
|
create table mysqltest1.t1 (a int);
|
|
create definer=definer@localhost view mysqltest2.v2 as select * from mysqltest1.t1;
|
|
create definer=definer@localhost view mysqltest3.v3 as select * from mysqltest2.v2;
|
|
create definer=definer@localhost view mysqltest3.v3is as select schema_name from information_schema.schemata order by schema_name;
|
|
create definer=definer@localhost view mysqltest3.v3ps as select user from performance_schema.users where current_connections>0 order by user;
|
|
create definer=definer@localhost view mysqltest3.v3nt as select 1;
|
|
create definer=definer@localhost sql security invoker view mysqltest3.v3i as select * from mysqltest1.t1;
|
|
|
|
exec $MYSQL_DUMP --compact -B mysqltest1 mysqltest2 mysqltest3;
|
|
|
|
connect inv,localhost,invoker;
|
|
error ER_DBACCESS_DENIED_ERROR;
|
|
lock table mysqltest3.v3 write;
|
|
disconnect inv;
|
|
connection default;
|
|
|
|
grant lock tables on mysqltest3.* to invoker@localhost;
|
|
connect inv,localhost,invoker;
|
|
show create view mysqltest3.v3;
|
|
show create view mysqltest3.v3is;
|
|
show create view mysqltest3.v3ps;
|
|
show create view mysqltest3.v3nt;
|
|
show create view mysqltest3.v3i;
|
|
error ER_VIEW_INVALID;
|
|
lock table mysqltest3.v3 write;
|
|
error ER_VIEW_INVALID;
|
|
lock table mysqltest3.v3i write;
|
|
lock table mysqltest3.v3is write; select * from mysqltest3.v3is;
|
|
lock table mysqltest3.v3ps write; select * from mysqltest3.v3ps;
|
|
lock table mysqltest3.v3nt write; select * from mysqltest3.v3nt;
|
|
disconnect inv;
|
|
connection default;
|
|
|
|
grant lock tables on mysqltest2.* to invoker@localhost;
|
|
connect inv,localhost,invoker;
|
|
error ER_VIEW_INVALID;
|
|
lock table mysqltest3.v3 write;
|
|
error ER_VIEW_INVALID;
|
|
lock table mysqltest3.v3i write;
|
|
disconnect inv;
|
|
connection default;
|
|
|
|
grant lock tables on mysqltest1.* to definer@localhost;
|
|
connect inv,localhost,invoker;
|
|
lock table mysqltest3.v3 write; select * from mysqltest3.v3;
|
|
error ER_VIEW_INVALID;
|
|
lock table mysqltest3.v3i write;
|
|
disconnect inv;
|
|
connection default;
|
|
|
|
grant lock tables on mysqltest1.* to invoker@localhost;
|
|
connect inv,localhost,invoker;
|
|
lock table mysqltest3.v3i write; select * from mysqltest3.v3i;
|
|
disconnect inv;
|
|
connection default;
|
|
|
|
drop user invoker@localhost;
|
|
drop user definer@localhost;
|
|
drop database mysqltest1;
|
|
drop database mysqltest2;
|
|
drop database mysqltest3;
|
|
|
|
--echo #
|
|
--echo # MDEV-24331 mysqldump fails with "Got error: 1356" if the database contains a view with a subquery
|
|
--echo #
|
|
create user u1@localhost;
|
|
grant all privileges on test.* to u1@localhost;
|
|
connect con1,localhost,u1;
|
|
use test;
|
|
create table t1 (id int not null);
|
|
create view v1 as select * from (select * from t1) dt;
|
|
lock table v1 read;
|
|
disconnect con1;
|
|
connection default;
|
|
exec $MYSQL_DUMP test v1 -uu1 --compact;
|
|
drop view v1;
|
|
drop table t1;
|
|
drop user u1@localhost;
|
|
--enable_service_connection
|