summaryrefslogtreecommitdiff
path: root/mysql-test/t/view_grant.test
diff options
context:
space:
mode:
authorunknown <pem@mysql.com>2005-10-28 12:11:32 +0200
committerunknown <pem@mysql.com>2005-10-28 12:11:32 +0200
commit25d1e01409dd90cc05de43e1c29557f3a9835de1 (patch)
treef54cbb37f10cdbca7a35db8cfb570ff565740d62 /mysql-test/t/view_grant.test
parentc58a2bf7c9262e02c54d80e9bf8f1efc67bedd15 (diff)
downloadmariadb-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/view_grant.test')
-rw-r--r--mysql-test/t/view_grant.test45
1 files changed, 45 insertions, 0 deletions
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;