mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-5232 SET ROLE checks privileges differently from check_access()
use the same inconsistent priv_user@host pair for SET ROLE privilege checks, just as check_access() does
This commit is contained in:
15
mysql-test/suite/roles/set_role-5232.result
Normal file
15
mysql-test/suite/roles/set_role-5232.result
Normal file
@ -0,0 +1,15 @@
|
||||
create user ''@localhost;
|
||||
create user c;
|
||||
grant select on mysql.* to c;
|
||||
create role r1;
|
||||
grant r1 to c;
|
||||
select user(), current_user();
|
||||
user() current_user()
|
||||
c@localhost @localhost
|
||||
select user from mysql.user group by user;
|
||||
ERROR 42000: SELECT command denied to user ''@'localhost' for table 'user'
|
||||
set role r1;
|
||||
ERROR OP000: Invalid role specification `r1`.
|
||||
drop role r1;
|
||||
drop user c;
|
||||
drop user ''@localhost;
|
20
mysql-test/suite/roles/set_role-5232.test
Normal file
20
mysql-test/suite/roles/set_role-5232.test
Normal file
@ -0,0 +1,20 @@
|
||||
#
|
||||
# MDEV-5232 SET ROLE checks privileges differently from check_access()
|
||||
#
|
||||
--source include/not_embedded.inc
|
||||
create user ''@localhost;
|
||||
create user c;
|
||||
grant select on mysql.* to c;
|
||||
create role r1;
|
||||
grant r1 to c;
|
||||
connect (c,localhost,c,,,,,);
|
||||
select user(), current_user();
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
select user from mysql.user group by user;
|
||||
--error ER_INVALID_ROLE
|
||||
set role r1;
|
||||
disconnect c;
|
||||
connection default;
|
||||
drop role r1;
|
||||
drop user c;
|
||||
drop user ''@localhost;
|
Reference in New Issue
Block a user