From 938a4ba3a7643b6a6b38e996ea17a86304cbb43a Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 14 Sep 2005 10:53:09 +0300 Subject: part 1 (ver 2, postreview fix) of WL#2787 view definer information syntax/storage/replication fixed SOURCE field of .frm mysql-test/r/func_in.result: definer information added to CREATE VIEW mysql-test/r/lowercase_view.result: definer information added to CREATE VIEW mysql-test/r/mysqldump.result: definer information added to CREATE VIEW mysql-test/r/rpl_view.result: check log of queries mysql-test/r/skip_grants.result: --skip-grants do not allow use user information mysql-test/r/sql_mode.result: definer information added to CREATE VIEW mysql-test/r/temp_table.result: definer information added to CREATE VIEW mysql-test/r/view.result: definer information added to CREATE VIEW test of storing/restoring definer information mysql-test/r/view_grant.result: test of grant check of definer information definer information added to CREATE VIEW mysql-test/t/rpl_view.test: check log of queries mysql-test/t/skip_grants.test: --skip-grants do not allow use user information mysql-test/t/view.test: test of storing/restoring definer information mysql-test/t/view_grant.test: test of grant check of definer information sql/mysql_priv.h: CREATE/ALTER VIEW print support set current user as definer procedure sql/share/errmsg.txt: new errors/warnings sql/sql_acl.cc: make find_acl_user public to allow to check user sql/sql_acl.h: make find_acl_user public to allow to check user sql/sql_lex.h: storing definer information sql/sql_parse.cc: send CREATE/ALTER VIEW for replication with full list of options set current user as definer procedure sql/sql_show.cc: new CREATE VIEW options printed sql/sql_view.cc: check of definer clause changes in .frm file definer information storage support now we store only original SELECT in SOURCE field of .frm sql/sql_yacc.yy: definer information sintax support getting SOURCE field information for .frm sql/table.h: definer information storage --- mysql-test/r/view_grant.result | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'mysql-test/r/view_grant.result') diff --git a/mysql-test/r/view_grant.result b/mysql-test/r/view_grant.result index 71f0f28e59f..bac6e691069 100644 --- a/mysql-test/r/view_grant.result +++ b/mysql-test/r/view_grant.result @@ -12,6 +12,8 @@ create table mysqltest.t1 (a int, b int); create table mysqltest.t2 (a int, b int); grant select on mysqltest.t1 to mysqltest_1@localhost; grant create view,select on test.* to mysqltest_1@localhost; +create definer=root@localhost view v1 as select * from mysqltest.t1; +ERROR HY000: You need the SUPER privilege for creation view with root@localhost definer create view v1 as select * from mysqltest.t1; alter view v1 as select * from mysqltest.t1; ERROR 42000: DROP command denied to user 'mysqltest_1'@'localhost' for table 'v1' @@ -21,6 +23,9 @@ create view mysqltest.v2 as select * from mysqltest.t1; ERROR 42000: CREATE VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v2' create view v2 as select * from mysqltest.t2; ERROR 42000: ANY command denied to user 'mysqltest_1'@'localhost' for table 't2' +show create view v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`mysqltest_1`@`localhost` SQL SECURITY DEFINER VIEW `test`.`v1` AS select `mysqltest`.`t1`.`a` AS `a`,`mysqltest`.`t1`.`b` AS `b` from `mysqltest`.`t1` grant create view,drop,select on test.* to mysqltest_1@localhost; use test; alter view v1 as select * from mysqltest.t1; @@ -120,27 +125,27 @@ id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t1 system NULL NULL NULL NULL 0 const row not found show create view mysqltest.v1; View Create View -v1 CREATE ALGORITHM=UNDEFINED VIEW `mysqltest`.`v1` AS select (`mysqltest`.`t1`.`a` + 1) AS `c`,(`mysqltest`.`t1`.`b` + 1) AS `d` from `mysqltest`.`t1` +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest`.`v1` AS select (`mysqltest`.`t1`.`a` + 1) AS `c`,(`mysqltest`.`t1`.`b` + 1) AS `d` from `mysqltest`.`t1` explain select c from mysqltest.v2; id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY system NULL NULL NULL NULL 0 const row not found 2 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table show create view mysqltest.v2; View Create View -v2 CREATE ALGORITHM=TEMPTABLE VIEW `mysqltest`.`v2` AS select (`mysqltest`.`t1`.`a` + 1) AS `c`,(`mysqltest`.`t1`.`b` + 1) AS `d` from `mysqltest`.`t1` +v2 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest`.`v2` AS select (`mysqltest`.`t1`.`a` + 1) AS `c`,(`mysqltest`.`t1`.`b` + 1) AS `d` from `mysqltest`.`t1` explain select c from mysqltest.v3; id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t2 system NULL NULL NULL NULL 0 const row not found show create view mysqltest.v3; View Create View -v3 CREATE ALGORITHM=UNDEFINED VIEW `mysqltest`.`v3` AS select (`mysqltest`.`t2`.`a` + 1) AS `c`,(`mysqltest`.`t2`.`b` + 1) AS `d` from `mysqltest`.`t2` +v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest`.`v3` AS select (`mysqltest`.`t2`.`a` + 1) AS `c`,(`mysqltest`.`t2`.`b` + 1) AS `d` from `mysqltest`.`t2` explain select c from mysqltest.v4; id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY system NULL NULL NULL NULL 0 const row not found 2 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table show create view mysqltest.v4; View Create View -v4 CREATE ALGORITHM=TEMPTABLE VIEW `mysqltest`.`v4` AS select (`mysqltest`.`t2`.`a` + 1) AS `c`,(`mysqltest`.`t2`.`b` + 1) AS `d` from `mysqltest`.`t2` +v4 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest`.`v4` AS select (`mysqltest`.`t2`.`a` + 1) AS `c`,(`mysqltest`.`t2`.`b` + 1) AS `d` from `mysqltest`.`t2` revoke all privileges on mysqltest.* from mysqltest_1@localhost; delete from mysql.user where user='mysqltest_1'; drop database mysqltest; -- cgit v1.2.1