增加权限(GRANT priv_type ON)

Exisi 2023-01-25 11:28:51
Categories: Tags:
  • 授权就是为某个用户赋予某些权限。MySQL 提供了 GRANT 语句来为用户设置权限,GRANT语句可以为新建的权限用户赋予权限

 

  • 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 权限的用户才可以执行 GRANT 语句

语法

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_option

额外参数

参数

描述

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> GRANT ALL PRIVILEGESON *.* TO 'testUser'@'localhost' IDENTIFIED BY '123456'

WITH GRANT OPTION;

 

Query OK, 0 rows affected, 1 warning (0.05 sec)

 

  • 此命令表示授予testUser用户超级权限

 

示例

mysql> GRANT SELECT,INSERT ON *.* TO 'testUser1'@'localhost' IDENTIFIED BY 'testPwd'

WITH GRANT OPTION;

 

Query OK, 0 rows affected, 1 warning (0.05 sec)

 

  • 使用 SHOW GRANTS 语句查询用户 testUser 的权限,如下所示。

mysql> SHOW GRANTS FOR 'testUser'@'localhost';

+--------------------------------------------------------------------------------------------------+

| Grants for testUser@localhost                                                                                      |

+--------------------------------------------------------------------------------------------------+

| GRANT SELECT, INSERT ON *.* TO 'testUser'@'localhost' WITH GRANT OPTION |

+--------------------------------------------------------------------------------------------------+

1 row in set (0.00 sec)

 

  • 结果显示,testUser 对所有数据库的所有表有查询、插入权限,并可以将这些权限赋予给别的用户

 

 

来自 <http://c.biancheng.net/view/7502.html>