diff options
author | unknown <andrey@lmy004.> | 2006-05-29 13:16:29 +0200 |
---|---|---|
committer | unknown <andrey@lmy004.> | 2006-05-29 13:16:29 +0200 |
commit | 606abf255d65acfee5e14ea8cf9dc9faacef0e09 (patch) | |
tree | e40af7fd39e901176aef06fa43800c82c54d76bc /mysql-test/t/events_grant.test | |
parent | 4f295835de007a5df03866c9f5c7ab92c67abd51 (diff) | |
download | mariadb-git-606abf255d65acfee5e14ea8cf9dc9faacef0e09.tar.gz |
add missing events_grant test
Diffstat (limited to 'mysql-test/t/events_grant.test')
-rw-r--r-- | mysql-test/t/events_grant.test | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/mysql-test/t/events_grant.test b/mysql-test/t/events_grant.test new file mode 100644 index 00000000000..ba94944a3cf --- /dev/null +++ b/mysql-test/t/events_grant.test @@ -0,0 +1,105 @@ +CREATE DATABASE IF NOT EXISTS events_test; +use events_test; +# +# Events grants test begin +# +CREATE EVENT one_event ON SCHEDULE EVERY 10 SECOND DO SELECT 123; +--replace_column 8 # 9 # +SHOW EVENTS; +SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT from information_schema.events; +CREATE DATABASE events_test2; +CREATE USER ev_test@localhost; +GRANT ALL ON events_test.* to ev_test@localhost; +GRANT ALL ON events_test2.* to ev_test@localhost; +REVOKE EVENT ON events_test2.* FROM ev_test@localhost; +#now we are on con1 +connect (ev_con1,localhost,ev_test,,events_test2); +select "NEW CONNECTION"; +SELECT USER(), DATABASE(); +SHOW GRANTS; +--echo "Here comes an error:"; +#NO EVENT_ACL on events_test2 +--error 1044 +SHOW EVENTS; +USE events_test; +--echo "We should see one event"; +--replace_column 8 # 9 # +SHOW EVENTS; +#now create an event with the same name but we are different user +SELECT CONCAT("Let's create some new events from the name of ", USER()); +--error ER_EVENT_ALREADY_EXISTS +CREATE EVENT one_event ON SCHEDULE EVERY 20 SECOND DO SELECT 123; +CREATE EVENT two_event ON SCHEDULE EVERY 20 SECOND ON COMPLETION NOT PRESERVE COMMENT "two event" DO SELECT 123; +CREATE EVENT three_event ON SCHEDULE EVERY 20 SECOND ON COMPLETION PRESERVE COMMENT "three event" DO SELECT 123; + +--echo "Now we should see 3 events:"; +--replace_column 8 # 9 # +SHOW EVENTS; + +--echo "This should show us only 2 events:"; +--replace_column 8 # 9 # +SHOW EVENTS LIKE 't%event'; + +--echo "This should show us no events:"; +--replace_column 8 # 9 # +SHOW EVENTS FROM test LIKE '%'; +#ok, we are back +connection default; +GRANT EVENT ON events_test2.* TO ev_test@localhost; +connection ev_con1; +USE events_test2; +CREATE EVENT four_event ON SCHEDULE EVERY 20 SECOND DO SELECT 42; +connection default; +USE events_test; +--echo "We should see 4 events : one_event, two_event, three_event & four_event" +SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS; +DROP DATABASE events_test2; +--echo "We should see 3 events : one_event, two_event, three_event" +SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS; + +connection default; +CREATE DATABASE events_test2; +USE events_test2; +CREATE EVENT five_event ON SCHEDULE EVERY 20 SECOND DO SELECT 42; + +connection ev_con1; +--echo "Should see 4 events - one, two, three & five" +SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS; +connection default; +REVOKE EVENT ON events_test2.* FROM ev_test@localhost; +connection ev_con1; +USE test; +--echo "Should see 3 events - one, two & three" +SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS; +--echo "Let's test ALTER EVENT which changes the definer" +USE events_test; +ALTER EVENT one_event ON SCHEDULE EVERY 10 SECOND; +--echo "The definer should be ev_test@localhost" +SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='one_event'; +connection default; +USE events_test; +ALTER EVENT one_event COMMENT "comment"; +connection ev_con1; +--echo "The definer should be root@localhost" +SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='one_event'; +ALTER EVENT one_event DO SELECT 12; +--echo "The definer should be ev_test@localhost" +SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='one_event'; +connection default; +--echo "make the definer again root@localhost" +ALTER EVENT one_event COMMENT "new comment"; +connection ev_con1; +--echo "test DROP by another user" +DROP EVENT one_event; +connection default; +--echo "One event should not be there" +SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS; +disconnect ev_con1; +connection default; +DROP USER ev_test@localhost; +DROP DATABASE events_test2; +# +## EVENTS grants test end +# + +DROP DATABASE events_test; |