Merge mysql.com:/usr/local/bk/mysql-5.0
into mysql.com:/usr/home/pem/bug14256/mysql-5.0
This commit is contained in:
commit
1eaf95d5ca
@ -2198,7 +2198,7 @@ r_object_id users_names
|
|||||||
120001a080000542 guser02
|
120001a080000542 guser02
|
||||||
drop view v1, v2;
|
drop view v1, v2;
|
||||||
drop table t1, t2;
|
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
|
ERROR HY000: View definer is not fully qualified
|
||||||
create definer=some_user@localhost sql security invoker view v1 as select 1;
|
create definer=some_user@localhost sql security invoker view v1 as select 1;
|
||||||
Warnings:
|
Warnings:
|
||||||
|
@ -474,3 +474,30 @@ drop table t1;
|
|||||||
use test;
|
use test;
|
||||||
REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost;
|
REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost;
|
||||||
drop database mysqltest;
|
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;
|
||||||
|
@ -2082,7 +2082,7 @@ drop table t1, t2;
|
|||||||
# DEFINER information check
|
# DEFINER information check
|
||||||
#
|
#
|
||||||
-- error ER_NO_VIEW_USER
|
-- 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;
|
create definer=some_user@localhost sql security invoker view v1 as select 1;
|
||||||
show create view v1;
|
show create view v1;
|
||||||
drop view v1;
|
drop view v1;
|
||||||
|
@ -619,3 +619,48 @@ drop table t1;
|
|||||||
use test;
|
use test;
|
||||||
REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost;
|
REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost;
|
||||||
drop database mysqltest;
|
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;
|
||||||
|
@ -9026,8 +9026,7 @@ view_user:
|
|||||||
(LEX_USER*) thd->alloc(sizeof(st_lex_user))))
|
(LEX_USER*) thd->alloc(sizeof(st_lex_user))))
|
||||||
YYABORT;
|
YYABORT;
|
||||||
view_user->user = $3; view_user->host=$5;
|
view_user->user = $3; view_user->host=$5;
|
||||||
if (strchr(view_user->host.str, wild_many) ||
|
if (view_user->host.length == 0)
|
||||||
strchr(view_user->host.str, wild_one))
|
|
||||||
{
|
{
|
||||||
my_error(ER_NO_VIEW_USER, MYF(0));
|
my_error(ER_NO_VIEW_USER, MYF(0));
|
||||||
YYABORT;
|
YYABORT;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user