polardbxengine/mysql-test/suite/xengine_auth_sec/t/atomic_routine_grants.test

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