授权

授权格式:

 GRANT <privileges> ON <dbName.tableName>  TO <user> [IDENTIFIED BY "<password>"]  [WITH GRANT OPTION];

授权参数讲解:

privilegesCode表示授予的权限类型,常用的有以下几种类型:

  • all privileges:所有权限。

  • select:读取权限。

  • delete:删除权限。

  • update:更新权限。

  • create:创建权限。

  • drop:删除数据库、数据表权限。

dbName.tableName表示授予权限的具体库或表,常用的有以下几种选项:

  • *.*:授予该数据库服务器所有数据库的权限。
  • dbName.*:授予dbName数据库所有表的权限。

  • dbName.dbTable:授予数据库dbName中dbTable表的权限。

username@host表示授予的用户以及允许该用户登录的IP地址。其中Host有以下几种类型:

  • **localhost:**只允许该用户在本地登录,不能远程登录。

  • **%:**允许在除本机之外的任何一台机器远程登录。

  • **192.168.52.32:**具体的IP表示只允许该用户从特定IP登录。

password指定该用户登录时的面。

flush privileges表示刷新权限变更。

1、查看所有用户以及授权主机

mysql> select User,Host from mysql.user;
+--------+-----------+
| User   | Host      |
+--------+-----------+
| user2  | %         |
| zabbix | %         |
| root   | localhost |
+--------+-----------+
5 rows in set (0.00 sec)

2、查看某个用户的授权情况

mysql> show grants for 'root'@'localhost';
+---------------------------------------------------------------------+
| Grants for root@localhost                                           |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION        |
+---------------------------------------------------------------------+
2 rows in set (0.00 sec)

或者

mysql> show grants for 'zabbix'@'%';
+------------------------------------+
| Grants for zabbix@%                |
+------------------------------------+
| GRANT USAGE ON *.* TO 'zabbix'@'%' |
+------------------------------------+
1 row in set (0.00 sec)

3、授权

  • 授权所有权限

GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'passwd' WITH GRANT OPTION;
  • 授权单个gogs库权限

GRANT ALL PRIVILEGES ON gogs.* TO 'user2'@'%' IDENTIFIED BY 'passwd2';
  • 授权单个user表权限

GRANT ALL PRIVILEGES ON gogs.user TO 'user2'@'%' IDENTIFIED BY 'passwd2' WITH GRANT OPTION;
  • 单独授权增删改查权限,而不是所有权限

grant select, insert, update, delete on gogs.* to user@'%';
  • 授权某个固定主机权限

grant select, insert, update, delete on gogs.* to user@'172.16.3.200';

4、取消授权

revoke ALL PRIVILEGES ON *.* from 'user'@'%';
flush  privileges;

5、删除用户

drop user user@"%";

Last updated