权限CREATE USER是global privilege。
该权限可以创建,修改和删除用户。
如:
mysql> show grants for 'ut01'@'%';
+----------------------------------------+
| Grants for ut01@% |
+----------------------------------------+
| GRANT CREATE USER ON *.* TO 'ut01'@'%' | #global privilege只能on *.*,否则报语法错误
+----------------------------------------+
1 row in set (0.00 sec)
mysql>
mysql> select user();
+----------------+
| user() |
+----------------+
| ut01@localhost |
+----------------+
1 row in set (0.00 sec)
mysql> create user 'ut02'@'%';
Query OK, 0 rows affected (0.07 sec)
mysql> alter user 'ut02'@'%' identified by '20127163';
Query OK, 0 rows affected (0.05 sec)
mysql> alter user 'ut02'@'%' PASSWORD EXPIRE;
Query OK, 0 rows affected (0.12 sec)
mysql> alter user 'ut02'@'%' account lock;
Query OK, 0 rows affected (0.03 sec)
mysql> drop user 'ut02'@'%';
Query OK, 0 rows affected (0.03 sec)
mysql> drop user 'ut03'@'%'; #该用户为另外一个super用户所创建,但其同样能够删除
Query OK, 0 rows affected (0.04 sec)
mysql>
ps,mysql里面的schema和oracle的schema含义还是有很大区别的。
oracle的schema是用户和该用户的所有对象的集合。
而mysql的schema仅仅是一个库,和用户没有关系。
也就是说,mysql的schema里的对象(如表,视图,函数,用户等)和用户没有关系。
比如,ut01@%创建了表t1,但是t1表不属于ut@%用户,其只属于某个schema。
它不像oralce里面那样,对象必须依赖某个用户。
mysql没有这层概念。
这样就导致了,用户对某个对象的权限具有相当大的灵活性。