#At file:///data0/martin/bzr/6.0-5.1.29-rc-privilege-bugs-push/
2691 Martin Hansson 2008-09-09 [merge]
Bug#35600: Auto merge.
modified:
mysql-test/r/view_grant.result
mysql-test/t/view_grant.test
sql/sql_parse.cc
=== modified file 'mysql-test/r/view_grant.result'
--- a/mysql-test/r/view_grant.result 2008-09-08 08:52:36 +0000
+++ b/mysql-test/r/view_grant.result 2008-09-09 11:26:44 +0000
@@ -990,7 +990,9 @@ CREATE DATABASE mysqltest1;
USE mysqltest1;
CREATE VIEW v1 AS SELECT * FROM information_schema.tables LIMIT 1;
CREATE ALGORITHM = TEMPTABLE VIEW v2 AS SELECT 1 AS A;
+CREATE VIEW test.v3 AS SELECT 1 AS a;
GRANT SELECT ON mysqltest1.* to mysqluser1@localhost;
+GRANT ALL ON test.* TO mysqluser1@localhost;
PREPARE stmt_v1 FROM "SELECT * FROM mysqltest1.v1";
PREPARE stmt_v2 FROM "SELECT * FROM mysqltest1.v2";
REVOKE SELECT ON mysqltest1.* FROM mysqluser1@localhost;
@@ -998,6 +1000,11 @@ EXECUTE stmt_v1;
ERROR 42000: SELECT command denied to user 'mysqluser1'@'localhost' for table 'v1'
EXECUTE stmt_v2;
ERROR 42000: SELECT command denied to user 'mysqluser1'@'localhost' for table 'v2'
+PREPARE stmt FROM "SELECT a FROM v3";
+EXECUTE stmt;
+a
+1
DROP VIEW v1, v2;
DROP DATABASE mysqltest1;
+DROP VIEW test.v3;
DROP USER mysqluser1@localhost;
=== modified file 'mysql-test/t/view_grant.test'
--- a/mysql-test/t/view_grant.test 2008-09-08 08:52:36 +0000
+++ b/mysql-test/t/view_grant.test 2008-09-09 11:26:44 +0000
@@ -1300,8 +1300,11 @@ USE mysqltest1;
CREATE VIEW v1 AS SELECT * FROM information_schema.tables LIMIT 1;
CREATE ALGORITHM = TEMPTABLE VIEW v2 AS SELECT 1 AS A;
+CREATE VIEW test.v3 AS SELECT 1 AS a;
+
--connection default
GRANT SELECT ON mysqltest1.* to mysqluser1@localhost;
+GRANT ALL ON test.* TO mysqluser1@localhost;
--connect (connection1, localhost, mysqluser1, , test)
PREPARE stmt_v1 FROM "SELECT * FROM mysqltest1.v1";
@@ -1316,9 +1319,15 @@ REVOKE SELECT ON mysqltest1.* FROM mysql
EXECUTE stmt_v1;
--error ER_TABLEACCESS_DENIED_ERROR
EXECUTE stmt_v2;
-
--disconnect connection1
+
+--connect (connection2, localhost, mysqluser1,,)
+PREPARE stmt FROM "SELECT a FROM v3";
+EXECUTE stmt;
+--disconnect connection2
+
--connection default
DROP VIEW v1, v2;
DROP DATABASE mysqltest1;
+DROP VIEW test.v3;
DROP USER mysqluser1@localhost;
=== modified file 'sql/sql_parse.cc'
--- a/sql/sql_parse.cc 2008-09-08 08:52:36 +0000
+++ b/sql/sql_parse.cc 2008-09-09 11:26:44 +0000
@@ -5397,8 +5397,8 @@ check_table_access(THD *thd, ulong requi
if ((sctx->master_access & want_access) ==
want_access && thd->db)
tables->grant.privilege= want_access;
- else if (check_access(thd,want_access,tables->db,&tables->grant.privilege,
- 0, no_errors, 0))
+ else if (check_access(thd, want_access, tables->get_db_name(),
+ &tables->grant.privilege, 0, no_errors, 0))
goto deny;
}
thd->security_ctx= backup_ctx;
| Thread |
|---|
| • bzr commit into mysql-6.0 branch (mhansson:2691) Bug#35600 | Martin Hansson | 9 Sep |