summaryrefslogtreecommitdiff
path: root/mysql-test/r
diff options
context:
space:
mode:
authorVicențiu Ciorbaru <cvicentiu@gmail.com>2013-10-17 20:50:24 -0700
committerSergei Golubchik <sergii@pisem.net>2013-10-17 20:50:24 -0700
commitb4f3ba2643605e08259c0296c3b9e2b7c5db791f (patch)
tree52dc26a621dc14e7f85a125beef002403676605a /mysql-test/r
parentf22a50b2f9dca8405524015f8219c8de29413148 (diff)
downloadmariadb-git-b4f3ba2643605e08259c0296c3b9e2b7c5db791f.tar.gz
Added testcase to check that granting a role to a role works.
Diffstat (limited to 'mysql-test/r')
-rw-r--r--mysql-test/r/acl_roles_set_role-recursive.result88
1 files changed, 88 insertions, 0 deletions
diff --git a/mysql-test/r/acl_roles_set_role-recursive.result b/mysql-test/r/acl_roles_set_role-recursive.result
new file mode 100644
index 00000000000..ac7391b8a91
--- /dev/null
+++ b/mysql-test/r/acl_roles_set_role-recursive.result
@@ -0,0 +1,88 @@
+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');
+create user 'test_role2'@'';
+update mysql.user set is_role='Y' where user='test_role2';
+insert into mysql.roles_mapping (HostFk, UserFk, RoleFk) values ('',
+'test_role1',
+'test_role2');
+select user, host from mysql.user;
+user host
+test_role1
+test_role2
+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
+ test_role1 test_role2
+grant select on *.* to 'test_role2'@'';
+select * from mysql.user where user like 'test_role%';
+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 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 N 0 0 0 0 Y
+ test_role2 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'
+show grants;
+Grants for test_user@localhost
+GRANT USAGE ON *.* TO 'test_user'@'localhost'
+set role test_role1;
+show grants;
+Grants for test_user@localhost
+GRANT USAGE ON *.* TO 'test_user'@'localhost'
+select * from mysql.roles_mapping;
+HostFk UserFk RoleFk
+localhost test_user test_role1
+ test_role1 test_role2
+show grants;
+Grants for test_user@localhost
+GRANT USAGE ON *.* TO 'test_user'@'localhost'
+set role none;
+show grants;
+Grants for test_user@localhost
+GRANT USAGE ON *.* TO 'test_user'@'localhost'
+select * from mysql.roles_mapping;
+ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table 'roles_mapping'
+show grants;
+Grants for test_user@localhost
+GRANT USAGE ON *.* TO 'test_user'@'localhost'
+set role test_role2;
+ERROR HY000: The role 'test_role2' has not been granted or is invalid.
+show grants;
+Grants for test_user@localhost
+GRANT USAGE ON *.* TO 'test_user'@'localhost'
+select * from mysql.roles_mapping;
+ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table 'roles_mapping'
+show grants;
+Grants for test_user@localhost
+GRANT USAGE ON *.* TO 'test_user'@'localhost'
+set role test_role1;
+show grants;
+Grants for test_user@localhost
+GRANT USAGE ON *.* TO 'test_user'@'localhost'
+select * from mysql.roles_mapping;
+HostFk UserFk RoleFk
+localhost test_user test_role1
+ test_role1 test_role2
+show grants;
+Grants for test_user@localhost
+GRANT USAGE ON *.* TO 'test_user'@'localhost'
+set role none;
+show grants;
+Grants for test_user@localhost
+GRANT USAGE ON *.* TO 'test_user'@'localhost'
+select * from mysql.roles_mapping;
+ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table 'roles_mapping'
+delete from mysql.user where user='test_role1';
+delete from mysql.roles_mapping where UserFk like 'test_role1';
+delete from mysql.user where user='test_role2';
+delete from mysql.roles_mapping where UserFk like 'test_role2';
+drop user 'test_user'@'localhost';
+flush privileges;