权限EVENT,表示拥有创建,修改,执行和删除事件(event)的权限。
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| cms |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
6 rows in set (0.00 sec)
mysql> show grants for 'ut01'@'%';
+---------------------------------------+
| Grants for ut01@% |
+---------------------------------------+
| GRANT USAGE ON *.* TO 'ut01'@'%' |
| GRANT DROP ON `test1`.* TO 'ut01'@'%' | #我靠,test1库根本不存在,也可以授予成功,太鸡肋了
+---------------------------------------+
2 rows in set (0.00 sec)
mysql> revoke drop on test1.* from 'ut01'@'%';
Query OK, 0 rows affected (0.05 sec)
mysql> grant event on test1.* to 'ut01'@'%';
Query OK, 0 rows affected (0.05 sec)
mysql> revoke event on test1.* from 'ut01'@'%';
Query OK, 0 rows affected (0.04 sec)
mysql> grant event on test.* to 'ut01'@'%';
Query OK, 0 rows affected (0.05 sec)
mysql> show grants for 'ut01'@'%';
+---------------------------------------+
| Grants for ut01@% |
+---------------------------------------+
| GRANT USAGE ON *.* TO 'ut01'@'%' |
| GRANT EVENT ON `test`.* TO 'ut01'@'%' |
+---------------------------------------+
2 rows in set (0.00 sec)
mysql>
而用户:
mysql> use test
Database changed
mysql> DELIMITER $$
mysql>
mysql> CREATE EVENT `event_findTowerCraneID`
-> ON SCHEDULE EVERY 1 DAY STARTS '2015-04-01 08:10:00'
-> ON COMPLETION NOT PRESERVE ENABLE DO SELECT SYSDATE() $$
Query OK, 0 rows affected (0.04 sec)
mysql>
mysql> DELIMITER ;
mysql>
mysql>
mysql> SHOW EVENTS FROM `test`;
+------+------------------------+---------+-----------+-----------+------------+----------------+----------------+---------------------+------+---------+------------+----------------------+----------------------+--------------------+
| Db | Name | Definer | Time zone | Type | Execute at | Interval value | Interval field | Starts | Ends | Status | Originator | character_set_client | collation_connection | Database Collation |
+------+------------------------+---------+-----------+-----------+------------+----------------+----------------+---------------------+------+---------+------------+----------------------+----------------------+--------------------+
| test | event_findTowerCraneID | ut01@% | SYSTEM | RECURRING | NULL | 1 | DAY | 2015-04-01 08:10:00 | NULL | ENABLED | 2 | utf8 | utf8_general_ci | utf8_general_ci |
+------+------------------------+---------+-----------+-----------+------------+----------------+----------------+---------------------+------+---------+------------+----------------------+----------------------+--------------------+
1 row in set (0.00 sec)
mysql>
对事件的创建,删除和修改都好理解。
事件的执行,怎么理解?
能够像存储过程一样call吗?
我艹,事件明明是数据库自己触发调用。
用户执行事件,没有理解。留到这里先。
单独授予用户EXECUTE权限,该用户就有了相关范围内的执行存储过程或者调用函数的权限。
除此之外,不能删除修改,更不能创建。
没有相关演示。