mirror of
https://github.com/MariaDB/server.git
synced 2026-05-16 11:57:38 +02:00
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:
parent
c58a2bf7c9
commit
25d1e01409
5 changed files with 75 additions and 4 deletions
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue