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;