【MySQL】——用户和权限管理(二)

时间:2024-05-07 08:37:09

在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子句中使用“*.*”,表示所有数据库的所有表。