要启用或禁用调度事件的执行,必须设置全局 event_scheduler系统变量的值。这需要足以设置全局系统变量的特权。
该EVENT特权控制事件的创建,修改和删除。可以使用授予该特权GRANT。例如,以下GRANT语句EVENT为myschema用户 指定的模式授予特权jon@ghidora:
GRANT EVENT ON myschema.* TO jon@ghidora;
(我们假定此用户帐户已经存在,否则我们希望它保持不变。)
要向同一用户授予EVENT 所有模式的特权,请使用以下语句:
GRANT EVENT ON . TO jon@ghidora;
该EVENT特权具有全局或架构级别的范围。因此,尝试在单个表上授予它会导致错误,如下所示:
mysql> GRANT EVENT ON myschema.mytable TO jon@ghidora;
ERROR 1144 (42000): Illegal GRANT/REVOKE command; please
consult the manual to see which privileges can be used
重要的是要了解事件是使用其定义者的特权执行的,并且它无法执行其定义者没有必要特权的任何操作。例如,假设jon@ghidora具有的 EVENT特权 myschema。还要假设该用户具有的 SELECT特权 myschema,但是对该模式没有其他特权。可以jon@ghidora创建一个新的事件,例如:
CREATE EVENT e_store_ts
ON SCHEDULE
EVERY 10 SECOND
DO