在MySQL中使用GRANT语句只能对已存在的用户授权,如果授权的用户不存在,则会出错。
基本语法格式为:
GRANT priv_type [(column_list)] [, priv_type [(column_list)]] ...
ON [object_type] priv_level
TO user_or_role [, user_or_role] ...
[WITH GRANT OPTION]
参数说明:
priv_type:表示用户的权限,如select,update。
column_list :列名。
object_type:(如果存在)应指定为表、函数或过程。
priv_level :表示用户的权限范围。
user_or_role:用户或角色,用户由用户名和主机名组成。
WITH GRANT OPTION:表示该用户可以将自己拥有的权限授权给其他用户。
1. 查看新用户的权限
用户可以通过SHOW GRANTS语句查看拥有哪些权限,当然如果有对mysql数据库的访问权限也可以直接查询权限表。
基本语法格式为:
SHOW GRANTS [FOR user_or_role];
说明:user_or_role表示用户或角色。
SHOW GRANTS;语句表示查看当前用户的权限,也可以表示成:
SHOW GRANTS FOR CURRENT_USER;
或者 SHOW GRANTS FOR CURRENT_USER();
2.授予表级权限和列级权限
(1)授予表级权限
授予表级权限时,priv_type的值具体可以查看相应的权限表。
基本格式为:
GRANT权限列表 ON 数据库名.表名 TO 用户 [WITH GRANT OPTION];
3. 授予数据库权限
授予数据库权限时,priv_type的取值可以查看mysql.db表。
基本格式为:
GRANT权限列表 ON 数据库名.* TO 用户 [WITH GRANT OPTION];
说明:授予数据库权限时ON关键字后面跟“*”和“数据库.*”。“*”表示当前数据库中的所有表;“数据库.*”表示某个数据库中的所有表。
4. 授予全局级权限
授予全局权限时priv_type的取值可以查看mysql.user表。
基本格式为: GRANT权限列表 ON *.* TO 用户 [WITH GRANT OPTION];
说明: ON子句中使用“*.*”,表示所有数据库的所有表。