Fixed BUG#14256: definer in view definition is not fully qualified

Changed the parser test for wildcards in hostname to checking for empty
  strings instead (analogous with the test in default_view_definer()),
  since wildcards do appear in the definer's host-part sometimes.


mysql-test/r/view.result:
  Updated result.
mysql-test/r/view_grant.result:
  Added test for BUG#14256.
mysql-test/t/view.test:
  Changed test for explicit definer; wildcards in host are ok, empty host-part is not.
mysql-test/t/view_grant.test:
  Added test for BUG#14256.
sql/sql_yacc.yy:
  Changed test for wildcards in hostpart of explicit view definer to test for empty
  host part instead. (Analogous with sql_parse.cc:default_view_definer().)
This commit is contained in:
unknown 2005-10-28 12:11:32 +02:00
commit 25d1e01409
5 changed files with 75 additions and 4 deletions

View file

@ -307,3 +307,30 @@ use mysqltest;
create view v1 as select * from t1;
revoke all privileges on mysqltest.* 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;