Commit 5470c200 authored by Vicențiu Ciorbaru's avatar Vicențiu Ciorbaru Committed by Sergei Golubchik

Added testcase for the command SET ROLE.

The testcase checks to see if the privileges are set accordingly to a newly
created user. This is the most general usecase.
parent d96e7fa7
create user 'test_user'@'localhost';
create user 'test_role1'@'';
update mysql.user set is_role='Y' where user='test_role1';
insert into mysql.roles_mapping (HostFk, UserFk, RoleFk) values ('localhost',
'test_user',
'test_role1');
select user, host from mysql.user;
user host
test_role1
root 127.0.0.1
root ::1
root Arrakis
root localhost
test_user localhost
select * from mysql.roles_mapping;
HostFk UserFk RoleFk
localhost test_user test_role1
grant select on *.* to 'test_role1'@'';
select * from mysql.user where user='test_role1';
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string is_role
test_role1 Y N N N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 Y
flush privileges;
select * from mysql.roles_mapping;
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table 'roles_mapping'
set role 'test_role1';
select * from mysql.roles_mapping;
HostFk UserFk RoleFk
localhost test_user test_role1
delete from mysql.user where user='test_role1';
delete from mysql.roles_mapping where UserFk='test_role1';
drop user 'test_user'@'localhost';
#create a user with no privileges
create user 'test_user'@'localhost';
create user 'test_role1'@'';
#manualy create role
update mysql.user set is_role='Y' where user='test_role1';
insert into mysql.roles_mapping (HostFk, UserFk, RoleFk) values ('localhost',
'test_user',
'test_role1');
select user, host from mysql.user;
select * from mysql.roles_mapping;
grant select on *.* to 'test_role1'@'';
select * from mysql.user where user='test_role1';
flush privileges;
change_user 'test_user';
--error ER_TABLEACCESS_DENIED_ERROR
select * from mysql.roles_mapping;
set role 'test_role1';
select * from mysql.roles_mapping;
change_user 'root';
delete from mysql.user where user='test_role1';
delete from mysql.roles_mapping where UserFk='test_role1';
drop user 'test_user'@'localhost';
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment