mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 10:56:12 +01:00 
			
		
		
		
	 d6e3d89c80
			
		
	
	
	d6e3d89c80
	
	
	
		
			
			SUPER privilege used to allow various actions that were alternatively allowed by one of BINLOG ADMIN, BINLOG MONITOR, BINLOG REPLAY, CONNECTION ADMIN, FEDERATED ADMIN, REPL MASTER ADMIN, REPL SLAVE ADMIN, SET USER, SLAVE MONITOR. Now SUPER no longer does that, one has to grant one of the fine-grained privileges above to be to perform corresponding actions. On upgrade from MariaDB versions 10.11 and below all the privileges above are granted automatically if the user has SUPER. As a side-effect, such an upgrade will allow SUPER-user to run SHOW BINLOG EVENTS, SHOW RELAYLOG EVENTS, SHOW SLAVE HOSTS, even if he wasn't able to do it before the upgrade.
		
			
				
	
	
		
			66 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| -- source include/not_embedded.inc
 | |
| 
 | |
| --echo #
 | |
| --echo # Start of 10.5 tests
 | |
| --echo #
 | |
| 
 | |
| --echo #
 | |
| --echo # MDEV-21743 Split up SUPER privilege to smaller privileges 
 | |
| --echo #
 | |
| --disable_service_connection
 | |
| 
 | |
| --let $count_sessions=1
 | |
| 
 | |
| --echo #
 | |
| --echo # Test that KILL is not allowed without CONNECTION ADMIN
 | |
| --echo #
 | |
| 
 | |
| CREATE USER foo@localhost;
 | |
| GRANT SELECT ON *.* TO foo@localhost;
 | |
| CREATE USER bar@localhost;
 | |
| GRANT ALL PRIVILEGES ON *.* TO bar@localhost;
 | |
| REVOKE CONNECTION ADMIN ON *.* FROM bar@localhost;
 | |
| --connect (foo,localhost,foo,,)
 | |
| let $id=`(SELECT id FROM INFORMATION_SCHEMA.PROCESSLIST WHERE user='foo')`;
 | |
| --connect (bar,localhost,bar,,)
 | |
| SELECT user FROM information_schema.processlist ORDER BY user;
 | |
| --replace_result $id ID
 | |
| --error ER_KILL_DENIED_ERROR
 | |
| --eval KILL $id
 | |
| --disconnect foo
 | |
| --disconnect bar
 | |
| --connection default
 | |
| --source include/wait_until_count_sessions.inc
 | |
| DROP USER foo@localhost;
 | |
| DROP USER bar@localhost;
 | |
| 
 | |
| --echo #
 | |
| --echo # Test that KILL is allowed with CONNECTION ADMIN
 | |
| --echo #
 | |
| 
 | |
| CREATE USER foo@localhost;
 | |
| GRANT SELECT ON *.* TO foo@localhost;
 | |
| CREATE USER bar@localhost;
 | |
| GRANT PROCESS, CONNECTION ADMIN ON *.* TO bar@localhost;
 | |
| --connect (foo,localhost,foo,,)
 | |
| let $id=`(SELECT id FROM INFORMATION_SCHEMA.PROCESSLIST WHERE user='foo')`;
 | |
| --connect (bar,localhost,bar,,)
 | |
| SELECT user FROM information_schema.processlist ORDER BY user;
 | |
| --replace_result $id ID
 | |
| --eval KILL $id
 | |
| --connection default
 | |
| let $wait_condition=
 | |
|     select count(*) = 0 from information_schema.processlist
 | |
|     where user = "foo";
 | |
| --source include/wait_condition.inc
 | |
| --disconnect foo
 | |
| --disconnect bar
 | |
| --source include/wait_until_count_sessions.inc
 | |
| DROP USER foo@localhost;
 | |
| DROP USER bar@localhost;
 | |
| 
 | |
| --enable_service_connection
 | |
| 
 | |
| --echo #
 | |
| --echo # End of 10.5 tests
 | |
| --echo #
 |