Loading mysql-test/r/view.result +1 −1 Original line number Diff line number Diff line Loading @@ -2198,7 +2198,7 @@ r_object_id users_names 120001a080000542 guser02 drop view v1, v2; drop table t1, t2; create definer=some_user@__% sql security invoker view v1 as select 1; create definer=some_user@`` sql security invoker view v1 as select 1; ERROR HY000: View definer is not fully qualified create definer=some_user@localhost sql security invoker view v1 as select 1; Warnings: Loading mysql-test/r/view_grant.result +27 −0 Original line number Diff line number Diff line Loading @@ -474,3 +474,30 @@ drop table t1; use test; REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost; drop database mysqltest; drop view if exists v1; create table t1 as select * from mysql.user where user=''; delete from mysql.user where user=''; flush privileges; grant all on test.* to 'test14256'@'%'; use test; create view v1 as select 42; show create view v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`test14256`@`%` SQL SECURITY DEFINER VIEW `v1` AS select 42 AS `42` select definer into @v1def1 from information_schema.views where table_schema = 'test' and table_name='v1'; drop view v1; create definer=`test14256`@`%` view v1 as select 42; show create view v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`test14256`@`%` SQL SECURITY DEFINER VIEW `v1` AS select 42 AS `42` select definer into @v1def2 from information_schema.views where table_schema = 'test' and table_name='v1'; drop view v1; select @v1def1, @v1def2, @v1def1=@v1def2; @v1def1 @v1def2 @v1def1=@v1def2 test14256@% test14256@% 1 drop user test14256; insert into mysql.user select * from t1; flush privileges; drop table t1; mysql-test/t/view.test +1 −1 Original line number Diff line number Diff line Loading @@ -2082,7 +2082,7 @@ drop table t1, t2; # DEFINER information check # -- error ER_NO_VIEW_USER create definer=some_user@__% sql security invoker view v1 as select 1; create definer=some_user@`` sql security invoker view v1 as select 1; create definer=some_user@localhost sql security invoker view v1 as select 1; show create view v1; drop view v1; Loading mysql-test/t/view_grant.test +45 −0 Original line number Diff line number Diff line Loading @@ -619,3 +619,48 @@ drop table t1; use test; REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost; drop database mysqltest; # # BUG#14256: definer in view definition is not fully qualified # --disable_warnings drop view if exists v1; --enable_warnings # Backup anonymous users and remove them. (They get in the way of # the one we test with here otherwise.) create table t1 as select * from mysql.user where user=''; delete from mysql.user where user=''; flush privileges; # Create the test user grant all on test.* to 'test14256'@'%'; connect (test14256,localhost,test14256,,test); connection test14256; use test; create view v1 as select 42; show create view v1; select definer into @v1def1 from information_schema.views where table_schema = 'test' and table_name='v1'; drop view v1; create definer=`test14256`@`%` view v1 as select 42; show create view v1; select definer into @v1def2 from information_schema.views where table_schema = 'test' and table_name='v1'; drop view v1; select @v1def1, @v1def2, @v1def1=@v1def2; connection root; drop user test14256; # Restore the anonymous users. insert into mysql.user select * from t1; flush privileges; drop table t1; sql/sql_yacc.yy +1 −2 Original line number Diff line number Diff line Loading @@ -9026,8 +9026,7 @@ view_user: (LEX_USER*) thd->alloc(sizeof(st_lex_user)))) YYABORT; view_user->user = $3; view_user->host=$5; if (strchr(view_user->host.str, wild_many) || strchr(view_user->host.str, wild_one)) if (view_user->host.length == 0) { my_error(ER_NO_VIEW_USER, MYF(0)); YYABORT; Loading Loading
mysql-test/r/view.result +1 −1 Original line number Diff line number Diff line Loading @@ -2198,7 +2198,7 @@ r_object_id users_names 120001a080000542 guser02 drop view v1, v2; drop table t1, t2; create definer=some_user@__% sql security invoker view v1 as select 1; create definer=some_user@`` sql security invoker view v1 as select 1; ERROR HY000: View definer is not fully qualified create definer=some_user@localhost sql security invoker view v1 as select 1; Warnings: Loading
mysql-test/r/view_grant.result +27 −0 Original line number Diff line number Diff line Loading @@ -474,3 +474,30 @@ drop table t1; use test; REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost; drop database mysqltest; drop view if exists v1; create table t1 as select * from mysql.user where user=''; delete from mysql.user where user=''; flush privileges; grant all on test.* to 'test14256'@'%'; use test; create view v1 as select 42; show create view v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`test14256`@`%` SQL SECURITY DEFINER VIEW `v1` AS select 42 AS `42` select definer into @v1def1 from information_schema.views where table_schema = 'test' and table_name='v1'; drop view v1; create definer=`test14256`@`%` view v1 as select 42; show create view v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`test14256`@`%` SQL SECURITY DEFINER VIEW `v1` AS select 42 AS `42` select definer into @v1def2 from information_schema.views where table_schema = 'test' and table_name='v1'; drop view v1; select @v1def1, @v1def2, @v1def1=@v1def2; @v1def1 @v1def2 @v1def1=@v1def2 test14256@% test14256@% 1 drop user test14256; insert into mysql.user select * from t1; flush privileges; drop table t1;
mysql-test/t/view.test +1 −1 Original line number Diff line number Diff line Loading @@ -2082,7 +2082,7 @@ drop table t1, t2; # DEFINER information check # -- error ER_NO_VIEW_USER create definer=some_user@__% sql security invoker view v1 as select 1; create definer=some_user@`` sql security invoker view v1 as select 1; create definer=some_user@localhost sql security invoker view v1 as select 1; show create view v1; drop view v1; Loading
mysql-test/t/view_grant.test +45 −0 Original line number Diff line number Diff line Loading @@ -619,3 +619,48 @@ drop table t1; use test; REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost; drop database mysqltest; # # BUG#14256: definer in view definition is not fully qualified # --disable_warnings drop view if exists v1; --enable_warnings # Backup anonymous users and remove them. (They get in the way of # the one we test with here otherwise.) create table t1 as select * from mysql.user where user=''; delete from mysql.user where user=''; flush privileges; # Create the test user grant all on test.* to 'test14256'@'%'; connect (test14256,localhost,test14256,,test); connection test14256; use test; create view v1 as select 42; show create view v1; select definer into @v1def1 from information_schema.views where table_schema = 'test' and table_name='v1'; drop view v1; create definer=`test14256`@`%` view v1 as select 42; show create view v1; select definer into @v1def2 from information_schema.views where table_schema = 'test' and table_name='v1'; drop view v1; select @v1def1, @v1def2, @v1def1=@v1def2; connection root; drop user test14256; # Restore the anonymous users. insert into mysql.user select * from t1; flush privileges; drop table t1;
sql/sql_yacc.yy +1 −2 Original line number Diff line number Diff line Loading @@ -9026,8 +9026,7 @@ view_user: (LEX_USER*) thd->alloc(sizeof(st_lex_user)))) YYABORT; view_user->user = $3; view_user->host=$5; if (strchr(view_user->host.str, wild_many) || strchr(view_user->host.str, wild_one)) if (view_user->host.length == 0) { my_error(ER_NO_VIEW_USER, MYF(0)); YYABORT; Loading