81 lines
2.1 KiB
Plaintext
81 lines
2.1 KiB
Plaintext
--source include/have_log_bin.inc
|
|
--source include/save_binlog_position.inc
|
|
|
|
# Save the initial number of concurrent sessions
|
|
--source include/count_sessions.inc
|
|
|
|
--echo # ----------------------------------------------------------------------
|
|
|
|
--echo # Begin : Tests for GRANT : Routine grants
|
|
|
|
CREATE USER userX, userY, userZ;
|
|
CREATE DATABASE db1;
|
|
DELIMITER ||;
|
|
CREATE PROCEDURE db1.proc1()
|
|
BEGIN
|
|
SELECT 1234;
|
|
END ||
|
|
DELIMITER ;||
|
|
--source include/save_binlog_position.inc
|
|
|
|
--echo # Case 1 : Valid grants
|
|
|
|
GRANT EXECUTE ON PROCEDURE db1.proc1 TO userX, userY, userZ;
|
|
|
|
--echo # Must show new grant
|
|
SHOW GRANTS FOR userX;
|
|
SHOW GRANTS FOR userY;
|
|
SHOW GRANTS FOR userZ;
|
|
|
|
--let $event= !Q(GRANT EXECUTE ON PROCEDURE.*db1.*proc1.*TO.*userX.*userY.*userZ.*)
|
|
--source ../include/auth_sec_assert_binlog_events.inc
|
|
--source include/save_binlog_position.inc
|
|
|
|
--echo # Case 6 : Create new user with an account without CREATE USER privilege
|
|
|
|
CREATE USER userA, userB;
|
|
GRANT EXECUTE ON PROCEDURE db1.proc1 to userX WITH GRANT OPTION;
|
|
|
|
SHOW GRANTS FOR userY;
|
|
SHOW GRANTS FOR userZ;
|
|
SHOW GRANTS FOR userA;
|
|
SHOW GRANTS FOR userB;
|
|
|
|
--source include/save_binlog_position.inc
|
|
connect(conn_userX, localhost, userX,,,,,);
|
|
connection conn_userX;
|
|
|
|
--echo # should succeed
|
|
GRANT EXECUTE ON PROCEDURE db1.proc1 TO userY, userZ;
|
|
|
|
--echo # should fail
|
|
--error ER_CANT_CREATE_USER_WITH_GRANT
|
|
GRANT EXECUTE ON PROCEDURE db1.proc1 TO userA, userB, userC;
|
|
|
|
connection default;
|
|
disconnect conn_userX;
|
|
|
|
--echo # Must show updated grants
|
|
|
|
SHOW GRANTS FOR userY;
|
|
SHOW GRANTS FOR userZ;
|
|
|
|
--echo # Must not have any change
|
|
SHOW GRANTS FOR userA;
|
|
SHOW GRANTS FOR userB;
|
|
|
|
--let $event= !Q(GRANT EXECUTE ON PROCEDURE.*db1.*proc1.*TO.*userY.*userZ.*)
|
|
--source ../include/auth_sec_assert_binlog_events.inc
|
|
|
|
DROP USER userX, userY, userZ, userA, userB;
|
|
DROP PROCEDURE db1.proc1;
|
|
DROP DATABASE db1;
|
|
--source include/save_binlog_position.inc
|
|
|
|
--echo # End : Tests for GRANT : Routine grants
|
|
|
|
--echo # ----------------------------------------------------------------------
|
|
|
|
# Wait till we reached the initial number of concurrent sessions
|
|
--source include/wait_until_count_sessions.inc
|