1-- source include/not_embedded.inc 2 3--echo # 4--echo # Start of 10.5 tests 5--echo # 6 7--echo # 8--echo # MDEV-21743 Split up SUPER privilege to smaller privileges 9--echo # 10 11--let $count_sessions=1 12 13--echo # 14--echo # Test that KILL is not allowed without CONNECTION ADMIN or SUPER 15--echo # 16 17CREATE USER foo@localhost; 18GRANT SELECT ON *.* TO foo@localhost; 19CREATE USER bar@localhost; 20GRANT ALL PRIVILEGES ON *.* TO bar@localhost; 21REVOKE CONNECTION ADMIN, SUPER ON *.* FROM bar@localhost; 22--connect (foo,localhost,foo,,) 23let $id=`(SELECT id FROM INFORMATION_SCHEMA.PROCESSLIST WHERE user='foo')`; 24--connect (bar,localhost,bar,,) 25SELECT user FROM information_schema.processlist ORDER BY user; 26--replace_result $id ID 27--error ER_KILL_DENIED_ERROR 28--eval KILL $id 29--disconnect foo 30--disconnect bar 31--connection default 32--source include/wait_until_count_sessions.inc 33DROP USER foo@localhost; 34DROP USER bar@localhost; 35 36--echo # 37--echo # Test that KILL is allowed with CONNECTION ADMIN 38--echo # 39 40CREATE USER foo@localhost; 41GRANT SELECT ON *.* TO foo@localhost; 42CREATE USER bar@localhost; 43GRANT PROCESS, CONNECTION ADMIN ON *.* TO bar@localhost; 44--connect (foo,localhost,foo,,) 45let $id=`(SELECT id FROM INFORMATION_SCHEMA.PROCESSLIST WHERE user='foo')`; 46--connect (bar,localhost,bar,,) 47SELECT user FROM information_schema.processlist ORDER BY user; 48--replace_result $id ID 49--eval KILL $id 50--connection default 51let $wait_condition= 52 select count(*) = 0 from information_schema.processlist 53 where user = "foo"; 54--source include/wait_condition.inc 55--disconnect foo 56--disconnect bar 57--source include/wait_until_count_sessions.inc 58DROP USER foo@localhost; 59DROP USER bar@localhost; 60 61--echo # 62--echo # Test that KILL is allowed with SUPER 63--echo # 64 65CREATE USER foo@localhost; 66GRANT SELECT ON *.* TO foo@localhost; 67CREATE USER bar@localhost; 68GRANT PROCESS, SUPER ON *.* TO bar@localhost; 69--connect (foo,localhost,foo,,) 70let $id=`(SELECT id FROM INFORMATION_SCHEMA.PROCESSLIST WHERE user='foo')`; 71--connect (bar,localhost,bar,,) 72SELECT user FROM information_schema.processlist ORDER BY user; 73--replace_result $id ID 74--eval KILL $id 75--connection default 76let $wait_condition= 77 select count(*) = 0 from information_schema.processlist 78 where user = "foo"; 79--source include/wait_condition.inc 80--disconnect foo 81--disconnect bar 82--source include/wait_until_count_sessions.inc 83DROP USER foo@localhost; 84DROP USER bar@localhost; 85 86--echo # 87--echo # End of 10.5 tests 88--echo # 89