summaryrefslogtreecommitdiff
path: root/mysql-test/r/view_grant.result
diff options
context:
space:
mode:
authorunknown <evgen@moonbone.local>2006-11-27 16:15:32 +0300
committerunknown <evgen@moonbone.local>2006-11-27 16:15:32 +0300
commitaf1b3da56ff4b0168dcf6625897ba06256a5b84c (patch)
tree3f2c0bddf3d89f59c0a4ac6f4ebc660845f5464c /mysql-test/r/view_grant.result
parentc0f63d8564fdd1aacd001a882271dd896721d93a (diff)
downloadmariadb-git-af1b3da56ff4b0168dcf6625897ba06256a5b84c.tar.gz
Bug#17254: Error for DEFINER security on VIEW provides too much info
If a view was created with the DEFINER security and later the definer user was dropped then a SELECT from the view throws the error message saying that there is no definer user is registered. This is ok for a root but too much for a mere user. Now the st_table_list::prepare_view_securety_context() function reveals the absence of the definer only to a superuser and throws the 'access denied' error to others. mysql-test/t/view_grant.test: Added a test case for bug#17254: Error for DEFINER security on VIEW provides too much info mysql-test/r/view_grant.result: Added a test case for bug#17254: Error for DEFINER security on VIEW provides too much info sql/table.cc: Bug#17254: Error for DEFINER security on VIEW provides too much info Now the st_table_list::prepare_view_securety_context() function reveals the absence of the definer only to a superuser and throws the 'access denied' error to others.
Diffstat (limited to 'mysql-test/r/view_grant.result')
-rw-r--r--mysql-test/r/view_grant.result20
1 files changed, 20 insertions, 0 deletions
diff --git a/mysql-test/r/view_grant.result b/mysql-test/r/view_grant.result
index 35e7afc0a7b..422d6c5faaf 100644
--- a/mysql-test/r/view_grant.result
+++ b/mysql-test/r/view_grant.result
@@ -712,3 +712,23 @@ DROP FUNCTION f1;
DROP VIEW v2;
DROP VIEW v1;
DROP USER mysqltest_u1@localhost;
+CREATE DATABASE db17254;
+USE db17254;
+CREATE TABLE t1 (f1 INT);
+INSERT INTO t1 VALUES (10),(20);
+CREATE USER def_17254@localhost;
+GRANT SELECT ON db17254.* TO def_17254@localhost;
+CREATE USER inv_17254@localhost;
+GRANT SELECT ON db17254.t1 TO inv_17254@localhost;
+GRANT CREATE VIEW ON db17254.* TO def_17254@localhost;
+CREATE VIEW v1 AS SELECT * FROM t1;
+DROP USER def_17254@localhost;
+for a user
+SELECT * FROM v1;
+ERROR 42000: SELECT command denied to user 'inv_17254'@'localhost' for table 'v1
+'
+for a superuser
+SELECT * FROM v1;
+ERROR HY000: There is no 'def_17254'@'localhost' registered
+DROP USER inv_17254@localhost;
+DROP DATABASE db17254;