diff options
author | unknown <pem@mysql.com> | 2005-10-28 12:11:32 +0200 |
---|---|---|
committer | unknown <pem@mysql.com> | 2005-10-28 12:11:32 +0200 |
commit | 25d1e01409dd90cc05de43e1c29557f3a9835de1 (patch) | |
tree | f54cbb37f10cdbca7a35db8cfb570ff565740d62 /mysql-test/t | |
parent | c58a2bf7c9262e02c54d80e9bf8f1efc67bedd15 (diff) | |
download | mariadb-git-25d1e01409dd90cc05de43e1c29557f3a9835de1.tar.gz |
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().)
Diffstat (limited to 'mysql-test/t')
-rw-r--r-- | mysql-test/t/view.test | 2 | ||||
-rw-r--r-- | mysql-test/t/view_grant.test | 45 |
2 files changed, 46 insertions, 1 deletions
diff --git a/mysql-test/t/view.test b/mysql-test/t/view.test index dd773c4c650..aa3189bad69 100644 --- a/mysql-test/t/view.test +++ b/mysql-test/t/view.test @@ -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; diff --git a/mysql-test/t/view_grant.test b/mysql-test/t/view_grant.test index ea93345e894..44db66be6c3 100644 --- a/mysql-test/t/view_grant.test +++ b/mysql-test/t/view_grant.test @@ -406,3 +406,48 @@ connection root; revoke all privileges on mysqltest.* 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; |