mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 04:53:01 +01:00
Bug#35600: Auto merged.
This commit is contained in:
commit
cfd4c976f6
3 changed files with 23 additions and 5 deletions
|
@ -978,7 +978,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;
|
||||
|
@ -986,6 +988,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;
|
||||
|
|
|
@ -1265,8 +1265,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";
|
||||
|
@ -1281,9 +1284,15 @@ REVOKE SELECT ON mysqltest1.* FROM mysqluser1@localhost;
|
|||
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;
|
||||
|
|
|
@ -5196,12 +5196,14 @@ check_table_access(THD *thd, ulong want_access,TABLE_LIST *tables,
|
|||
tables->grant.privilege= want_access;
|
||||
else if (tables->db && thd->db && strcmp(tables->db, thd->db) == 0)
|
||||
{
|
||||
if (check_access(thd,want_access,tables->db,&tables->grant.privilege,
|
||||
0, no_errors, test(tables->schema_table)))
|
||||
if (check_access(thd, want_access, tables->get_db_name(),
|
||||
&tables->grant.privilege, 0, no_errors,
|
||||
test(tables->schema_table)))
|
||||
goto deny; // Access denied
|
||||
}
|
||||
else if (check_access(thd,want_access,tables->db,&tables->grant.privilege,
|
||||
0, no_errors, test(tables->schema_table)))
|
||||
else if (check_access(thd, want_access, tables->get_db_name(),
|
||||
&tables->grant.privilege, 0, no_errors,
|
||||
test(tables->schema_table)))
|
||||
goto deny;
|
||||
}
|
||||
thd->security_ctx= backup_ctx;
|
||||
|
|
Loading…
Reference in a new issue