259 lines
8.0 KiB
Plaintext
259 lines
8.0 KiB
Plaintext
# Test requires debug binary
|
|
--source include/have_debug.inc
|
|
# Test should not be run for embedded server
|
|
--source include/not_embedded.inc
|
|
|
|
SET @old_debug= @@SESSION.debug;
|
|
|
|
# mysql.user table
|
|
|
|
SET DEBUG='+d, se_error_replace_user_table_read';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
CREATE USER 'foo'@'localhost' IDENTIFIED BY 'abcd';
|
|
SET DEBUG='-d, se_error_replace_user_table_read';
|
|
|
|
SET DEBUG='+d, se_error_replace_user_table_add';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
CREATE USER 'foo'@'localhost' IDENTIFIED BY 'abcd';
|
|
SET DEBUG='-d, se_error_replace_user_table_add';
|
|
|
|
CREATE USER 'foo'@'localhost' IDENTIFIED BY 'abcd';
|
|
|
|
SET DEBUG='+d, se_error_replace_user_table_update';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
ALTER USER 'foo'@'localhost' PASSWORD EXPIRE;
|
|
SET DEBUG='-d, se_error_replace_user_table_update';
|
|
|
|
# mysql.db table
|
|
|
|
SET DEBUG='+d, se_error_replace_db_table_read';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
GRANT SELECT ON mysql.* TO 'foo'@'localhost';
|
|
SET DEBUG='-d, se_error_replace_db_table_read';
|
|
|
|
SET DEBUG='+d, se_error_replace_db_table_add';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
GRANT SELECT ON mysql.* TO 'foo'@'localhost';
|
|
SET DEBUG='-d, se_error_replace_db_table_add';
|
|
|
|
GRANT SELECT ON mysql.* TO 'foo'@'localhost';
|
|
|
|
SET DEBUG='+d, se_error_replace_db_table_update';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
GRANT UPDATE ON mysql.* TO 'foo'@'localhost';
|
|
SET DEBUG='-d, se_error_replace_db_table_update';
|
|
|
|
SET DEBUG='+d, se_error_replace_db_table_delete';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
REVOKE SELECT, UPDATE ON mysql.* FROM 'foo'@'localhost';
|
|
SET DEBUG='-d, se_error_replace_db_table_delete';
|
|
|
|
REVOKE SELECT, UPDATE ON mysql.* FROM 'foo'@'localhost';
|
|
# mysql.proxies_priv table
|
|
|
|
CREATE USER 'bar'@'localhost';
|
|
|
|
SET DEBUG='+d, se_error_replace_proxies_priv_table_read';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
GRANT PROXY ON 'foo'@'localhost' TO 'bar'@'localhost';
|
|
SET DEBUG='-d, se_error_replace_proxies_priv_table_read';
|
|
|
|
SET DEBUG='+d, se_error_replace_proxies_priv_table_add';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
GRANT PROXY ON 'foo'@'localhost' TO 'bar'@'localhost';
|
|
SET DEBUG='-d, se_error_replace_proxies_priv_table_add';
|
|
|
|
GRANT PROXY ON 'foo'@'localhost' TO 'bar'@'localhost';
|
|
|
|
SET DEBUG='+d, se_error_replace_proxies_priv_table_update';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
GRANT PROXY ON 'foo'@'localhost' TO 'bar'@'localhost';
|
|
SET DEBUG='-d, se_error_replace_proxies_priv_table_update';
|
|
|
|
SET DEBUG='+d, se_error_replace_proxies_priv_table_delete';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
REVOKE PROXY ON 'foo'@'localhost' FROM 'bar'@'localhost';
|
|
SET DEBUG='-d, se_error_replace_proxies_priv_table_delete';
|
|
|
|
# mysql.columns_priv table
|
|
|
|
CREATE TABLE test.t1(c1 int, c2 int);
|
|
|
|
SET DEBUG='+d, se_error_replace_column_table_read';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
GRANT SELECT(c1) ON test.t1 TO 'foo'@'localhost';
|
|
SET DEBUG='-d, se_error_replace_column_table_read';
|
|
|
|
SET DEBUG='+d, se_error_replace_column_table_add';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
GRANT SELECT(c1) ON test.t1 TO 'foo'@'localhost';
|
|
SET DEBUG='-d, se_error_replace_column_table_add';
|
|
|
|
GRANT SELECT(c1) ON test.t1 TO 'foo'@'localhost';
|
|
|
|
SET DEBUG='+d, se_error_replace_column_table_update';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
GRANT UPDATE(c1) ON test.t1 TO 'foo'@'localhost';
|
|
SET DEBUG='-d, se_error_replace_column_table_update';
|
|
|
|
# Required for MyISAM
|
|
REVOKE UPDATE ON test.t1 FROM 'foo'@'localhost';
|
|
|
|
SET DEBUG='+d, se_error_replace_column_table_delete';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
REVOKE SELECT(c1) ON test.t1 FROM 'foo'@'localhost';
|
|
SET DEBUG='-d, se_error_replace_column_table_delete';
|
|
|
|
GRANT SELECT(c1), UPDATE(c1) ON test.t1 TO 'foo'@'localhost';
|
|
FLUSH PRIVILEGES;
|
|
|
|
SET DEBUG='+d, se_error_replace_column_table_revoke_read';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
REVOKE SELECT ON test.t1 FROM 'foo'@'localhost';
|
|
SET DEBUG='-d, se_error_replace_column_table_revoke_read';
|
|
|
|
GRANT SELECT(c1) ON test.t1 TO 'foo'@'localhost';
|
|
FLUSH PRIVILEGES;
|
|
|
|
SET DEBUG='+d, se_error_replace_column_table_revoke_update';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
REVOKE UPDATE ON test.t1 FROM 'foo'@'localhost';
|
|
SET DEBUG='-d, se_error_replace_column_table_revoke_update';
|
|
REVOKE UPDATE ON test.t1 FROM 'foo'@'localhost';
|
|
|
|
SET DEBUG='+d, se_error_replace_column_table_revoke_delete';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
REVOKE SELECT ON test.t1 FROM 'foo'@'localhost';
|
|
SET DEBUG='-d, se_error_replace_column_table_revoke_delete';
|
|
|
|
GRANT SELECT(c1) ON test.t1 TO 'foo'@'localhost';
|
|
|
|
SET DEBUG='+d, se_error_replace_column_table_revoke_read_next';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
REVOKE SELECT ON test.t1 FROM 'foo'@'localhost';
|
|
SET DEBUG='-d, se_error_replace_column_table_revoke_read_next';
|
|
|
|
DROP TABLE test.t1;
|
|
|
|
# mysql.tables_priv table
|
|
|
|
CREATE TABLE test.t2(c1 int, c2 int);
|
|
|
|
SET DEBUG='+d, se_error_replace_table_table_read';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
GRANT SELECT ON test.t2 TO 'foo'@'localhost';
|
|
SET DEBUG='-d, se_error_replace_table_table_read';
|
|
|
|
SET DEBUG='+d, se_error_replace_table_table_add';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
GRANT SELECT ON test.t2 TO 'foo'@'localhost';
|
|
SET DEBUG='-d, se_error_replace_table_table_add';
|
|
GRANT SELECT ON test.t2 TO 'foo'@'localhost';
|
|
|
|
SET DEBUG='+d, se_error_replace_table_table_update';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
GRANT UPDATE ON test.t2 TO 'foo'@'localhost';
|
|
SET DEBUG='-d, se_error_replace_table_table_update';
|
|
|
|
DROP TABLE test.t2;
|
|
|
|
# mysql.procs_priv table
|
|
|
|
CREATE PROCEDURE test.p1()
|
|
SELECT 1;
|
|
|
|
SET DEBUG='+d, se_error_replace_routine_table_read';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
GRANT EXECUTE ON PROCEDURE test.p1 TO 'foo'@'localhost';
|
|
SET DEBUG='-d, se_error_replace_routine_table_read';
|
|
|
|
SET DEBUG='+d, se_error_replace_routine_table_add';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
GRANT EXECUTE ON PROCEDURE test.p1 TO 'foo'@'localhost';
|
|
SET DEBUG='-d, se_error_replace_routine_table_add';
|
|
GRANT EXECUTE ON PROCEDURE test.p1 TO 'foo'@'localhost';
|
|
|
|
SET DEBUG='+d, se_error_replace_routine_table_update';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
GRANT ALTER ROUTINE ON PROCEDURE test.p1 TO 'foo'@'localhost';
|
|
SET DEBUG='-d, se_error_replace_routine_table_update';
|
|
|
|
SET DEBUG='+d, se_error_replace_routine_table_delete';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
REVOKE ALL PRIVILEGES ON PROCEDURE test.p1 FROM 'foo'@'localhost';
|
|
SET DEBUG='-d, se_error_replace_routine_table_delete';
|
|
|
|
# rename user
|
|
|
|
SET DEBUG='+d, se_error_modify_grant_table_update';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
RENAME USER 'foo'@'localhost' TO 'foo_new'@'localhost';
|
|
SET DEBUG='-d, se_error_modify_grant_table_update';
|
|
|
|
SET DEBUG='+d, se_error_handle_grant_table_read';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
RENAME USER 'foo'@'localhost' TO 'foo_new'@'localhost';
|
|
SET DEBUG='-d, se_error_handle_grant_table_read';
|
|
|
|
SET DEBUG='+d, se_error_handle_grant_table_rnd_read';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
RENAME USER 'foo'@'localhost' TO 'foo_new'@'localhost';
|
|
SET DEBUG='-d, se_error_handle_grant_table_rnd_read';
|
|
|
|
# drop user
|
|
|
|
SET DEBUG='+d, se_error_modify_grant_table_delete';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
DROP USER 'foo'@'localhost';
|
|
SET DEBUG='-d, se_error_modify_grant_table_delete';
|
|
|
|
DROP PROCEDURE test.p1;
|
|
DROP USER 'foo'@'localhost';
|
|
|
|
# flush privileges
|
|
|
|
CREATE TABLE t1(a INT);
|
|
CREATE USER 'foo'@'localhost';
|
|
GRANT UPDATE (a) ON t1 TO 'foo'@'localhost';
|
|
|
|
SET DEBUG='+d, se_error_grant_table_init_read';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
FLUSH PRIVILEGES;
|
|
SET DEBUG='-d, se_error_grant_table_init_read';
|
|
|
|
SET DEBUG='+d, se_error_grant_table_init_read_next';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
FLUSH PRIVILEGES;
|
|
SET DEBUG='-d, se_error_grant_table_init_read_next';
|
|
|
|
CREATE PROCEDURE p() SET @x = 1;
|
|
GRANT EXECUTE ON PROCEDURE p TO 'foo'@'localhost';
|
|
|
|
SET DEBUG='+d, se_error_grant_load_read';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
FLUSH PRIVILEGES;
|
|
SET DEBUG='-d, se_error_grant_load_read';
|
|
|
|
SET DEBUG='+d, se_error_grant_load_read_next';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
FLUSH PRIVILEGES;
|
|
SET DEBUG='-d, se_error_grant_load_read_next';
|
|
|
|
SET DEBUG='+d, se_error_grant_load_procs_read';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
FLUSH PRIVILEGES;
|
|
SET DEBUG='-d, se_error_grant_load_procs_read';
|
|
|
|
SET DEBUG='+d, se_error_grant_load_procs_read_next';
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
FLUSH PRIVILEGES;
|
|
SET DEBUG='-d, se_error_grant_load_procs_read_next';
|
|
|
|
DROP USER 'foo'@'localhost';
|
|
DROP TABLE t1;
|
|
DROP PROCEDURE p;
|
|
|
|
# Cleanup
|
|
SET DEBUG= @old_global_debug;
|
|
DROP USER 'bar'@'localhost';
|