目录

(1)mysql中查看用户权限有2种方式:

(2)mysql GRANT:用户授权(拥有grant权限的用户才可执行grant语句)

(3)mysql revoke:删除用户权限有2种语法格式


(1)mysql中查看用户权限有2种方式:

1)查看mysql.user表中的数据记录

                SELECT * FROM mysql.user;

注意:a. 必须拥有对user表的查询权限,才可执行该语句;

           b. 新创建的用户只有登录mysql服务器的权限,没有任何其他权限,不能查询user表。2) SHOW GRANTS FOR 语句查看权限

                SHOW GRANTS FOR 'username'@'hostname';

其中,username 表示用户名,hostname 表示主机名或主机 IP。

转载自:MySQL查看用户权限 (biancheng.net)

(2)mysql GRANT:用户授权(拥有grant权限的用户才可执行grant语句)

简单概括:grant 权限 on 数据库对象 to 用户

完整语法格式:

GRANT priv_type [(column_list)]

ON database.table

TO user [IDENTIFIED BY [PASSWORD] 'password'] [, user[IDENTIFIED BY [PASSWORD] 'password']] ...

[WITH with_option [with_option]...]

其中:

  • priv_type 参数表示权限类型;
  • columns_list 参数表示权限作用于哪些列上,省略该参数时,表示作用于整个表;
  • database.table 用于指定权限的级别;
  • user 参数表示用户账户,由用户名和主机名构成,格式是“'username'@'hostname'”;
  • IDENTIFIED BY 参数用来为用户设置密码;
  • password 参数是用户的新密码。

WITH 关键字后面带有一个或多个 with_option 参数。这个参数有 5 个选项,详细介绍如下:

  • GRANT OPTION:被授权的用户可以将这些权限赋予给别的用户;
  • MAX_QUERIES_PER_HOUR count:设置每个小时可以允许执行 count 次查询;
  • MAX_UPDATES_PER_HOUR count:设置每个小时可以允许执行 count 次更新;
  • MAX_CONNECTIONS_PER_HOUR count:设置每小时可以建立 count 个连接;
  • MAX_USER_CONNECTIONS count:设置单个用户可以同时具有的 count 个连接。

MySQL 中可以授予的权限有如下几组:

  • 列权限,和表中的一个具体列相关。例如,可以使用 UPDATE 语句更新表 students 中 name 列的值的权限。
  • 表权限,和一个具体表中的所有数据相关。例如,可以使用 SELECT 语句查询表 students 的所有数据的权限。
  • 数据库权限,和一个具体的数据库中的所有表相关。例如,可以在已有的数据库 mytest 中创建新表的权限。
  • 用户权限,和 MySQL 中所有的数据库相关。例如,可以删除已有的数据库或者创建一个新的数据库的权限。

对应地,在 GRANT 语句中可用于指定权限级别的值有以下几类格式:

  • *:表示当前数据库中的所有表。
  • *.*:表示所有数据库中的所有表。
  • db_name.*:表示某个数据库中的所有表,db_name 指定数据库名。
  • db_name.tbl_name:表示某个数据库中的某个表或视图,db_name 指定数据库名,tbl_name 指定表名或视图名。
  • db_name.routine_name:表示某个数据库中的某个存储过程或函数,routine_name 指定存储过程名或函数名。
  • TO 子句:如果权限被授予给一个不存在的用户,MySQL 会自动执行一条 CREATE USER 语句来创建这个用户,但同时必须为该用户设置密码。

转载自:MySQL中授权(grant)和撤销授权(revoke - Boblim - 博客园 (cnblogs.com)

转载自:MySQL GRANT:用户授权 (biancheng.net)

(3)mysql revoke:删除用户权限有2种语法格式

简单概括:revoke 权限 on 数据库对象 from 用户

1)删除特定用户的特定权限

REVOKE priv_type [(column_list)]...
ON database.table
FROM user [, user]...

REVOKE 语句中的参数与 GRANT 语句的参数意思相同。其中:

  • priv_type 参数表示权限的类型;
  • column_list 参数表示权限作用于哪些列上,没有该参数时作用于整个表上;
  • user 参数由用户名和主机名构成,格式为“username'@'hostname'”。

2)删除特定用户的所有权限: 

REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ...

删除用户权限需要注意以下几点:

  • REVOKE 语法和 GRANT 语句的语法格式相似,但具有相反的效果。
  • 要使用 REVOKE 语句,必须拥有 MySQL 数据库的全局 CREATE USER 权限或 UPDATE 权限。
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐