mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 02:46:29 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			119 lines
		
	
	
	
		
			5.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			119 lines
		
	
	
	
		
			5.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| create user test_user@localhost;
 | |
| create role test_role1;
 | |
| grant test_role1 to test_user@localhost;
 | |
| create role test_role2;
 | |
| grant test_role2 to test_role1;
 | |
| select user, host from mysql.user where user not like 'root';
 | |
| User	Host
 | |
| mariadb.sys	localhost
 | |
| test_role1	
 | |
| test_role2	
 | |
| test_user	localhost
 | |
| select * from mysql.roles_mapping where User like 'test_user';
 | |
| Host	User	Role	Admin_option
 | |
| localhost	test_user	test_role1	N
 | |
| select * from mysql.roles_mapping where User like 'test_role1';
 | |
| Host	User	Role	Admin_option
 | |
| 	test_role1	test_role2	N
 | |
| grant select on *.* to test_role2;
 | |
| select * from mysql.user where user like '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	Delete_history_priv	ssl_type	ssl_cipher	x509_issuer	x509_subject	max_questions	max_updates	max_connections	max_user_connections	plugin	authentication_string	password_expired	is_role	default_role	max_statement_time
 | |
| 	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	N					0	0	0	0			N	Y		0.000000
 | |
| select * from mysql.user where user like 'test_role2';
 | |
| 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	Delete_history_priv	ssl_type	ssl_cipher	x509_issuer	x509_subject	max_questions	max_updates	max_connections	max_user_connections	plugin	authentication_string	password_expired	is_role	default_role	max_statement_time
 | |
| 	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	N					0	0	0	0			N	Y		0.000000
 | |
| select * from mysql.roles_mapping;
 | |
| ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table `mysql`.`roles_mapping`
 | |
| show grants;
 | |
| Grants for test_user@localhost
 | |
| GRANT USAGE ON *.* TO `test_user`@`localhost`
 | |
| GRANT `test_role1` TO `test_user`@`localhost`
 | |
| select current_user(), current_role();
 | |
| current_user()	current_role()
 | |
| test_user@localhost	NULL
 | |
| set role test_role1;
 | |
| select current_user(), current_role();
 | |
| current_user()	current_role()
 | |
| test_user@localhost	test_role1
 | |
| show grants;
 | |
| Grants for test_user@localhost
 | |
| GRANT SELECT ON *.* TO `test_role2`
 | |
| GRANT USAGE ON *.* TO `test_role1`
 | |
| GRANT USAGE ON *.* TO `test_user`@`localhost`
 | |
| GRANT `test_role1` TO `test_user`@`localhost`
 | |
| GRANT `test_role2` TO `test_role1`
 | |
| select * from mysql.roles_mapping where Host='';
 | |
| Host	User	Role	Admin_option
 | |
| 	test_role1	test_role2	N
 | |
| show grants;
 | |
| Grants for test_user@localhost
 | |
| GRANT SELECT ON *.* TO `test_role2`
 | |
| GRANT USAGE ON *.* TO `test_role1`
 | |
| GRANT USAGE ON *.* TO `test_user`@`localhost`
 | |
| GRANT `test_role1` TO `test_user`@`localhost`
 | |
| GRANT `test_role2` TO `test_role1`
 | |
| set role none;
 | |
| select current_user(), current_role();
 | |
| current_user()	current_role()
 | |
| test_user@localhost	NULL
 | |
| show grants;
 | |
| Grants for test_user@localhost
 | |
| GRANT USAGE ON *.* TO `test_user`@`localhost`
 | |
| GRANT `test_role1` TO `test_user`@`localhost`
 | |
| select * from mysql.roles_mapping;
 | |
| ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table `mysql`.`roles_mapping`
 | |
| show grants;
 | |
| Grants for test_user@localhost
 | |
| GRANT USAGE ON *.* TO `test_user`@`localhost`
 | |
| GRANT `test_role1` TO `test_user`@`localhost`
 | |
| set role test_role2;
 | |
| ERROR OP000: User `test_user`@`localhost` has not been granted role `test_role2`
 | |
| select current_user(), current_role();
 | |
| current_user()	current_role()
 | |
| test_user@localhost	NULL
 | |
| show grants;
 | |
| Grants for test_user@localhost
 | |
| GRANT USAGE ON *.* TO `test_user`@`localhost`
 | |
| GRANT `test_role1` TO `test_user`@`localhost`
 | |
| select * from mysql.roles_mapping;
 | |
| ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table `mysql`.`roles_mapping`
 | |
| show grants;
 | |
| Grants for test_user@localhost
 | |
| GRANT USAGE ON *.* TO `test_user`@`localhost`
 | |
| GRANT `test_role1` TO `test_user`@`localhost`
 | |
| set role test_role1;
 | |
| select current_user(), current_role();
 | |
| current_user()	current_role()
 | |
| test_user@localhost	test_role1
 | |
| show grants;
 | |
| Grants for test_user@localhost
 | |
| GRANT SELECT ON *.* TO `test_role2`
 | |
| GRANT USAGE ON *.* TO `test_role1`
 | |
| GRANT USAGE ON *.* TO `test_user`@`localhost`
 | |
| GRANT `test_role1` TO `test_user`@`localhost`
 | |
| GRANT `test_role2` TO `test_role1`
 | |
| select * from mysql.roles_mapping where Host='';
 | |
| Host	User	Role	Admin_option
 | |
| 	test_role1	test_role2	N
 | |
| show grants;
 | |
| Grants for test_user@localhost
 | |
| GRANT SELECT ON *.* TO `test_role2`
 | |
| GRANT USAGE ON *.* TO `test_role1`
 | |
| GRANT USAGE ON *.* TO `test_user`@`localhost`
 | |
| GRANT `test_role1` TO `test_user`@`localhost`
 | |
| GRANT `test_role2` TO `test_role1`
 | |
| set role none;
 | |
| select current_user(), current_role();
 | |
| current_user()	current_role()
 | |
| test_user@localhost	NULL
 | |
| show grants;
 | |
| Grants for test_user@localhost
 | |
| GRANT USAGE ON *.* TO `test_user`@`localhost`
 | |
| GRANT `test_role1` TO `test_user`@`localhost`
 | |
| select * from mysql.roles_mapping;
 | |
| ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table `mysql`.`roles_mapping`
 | |
| delete from mysql.user where user='test_role1';
 | |
| delete from mysql.user where user='test_role2';
 | |
| delete from mysql.roles_mapping;
 | |
| flush privileges;
 | |
| drop user 'test_user'@'localhost';
 | 
