权限类别:

管理类
程序类
数据库级别
表级别
字段级别

管理类:

CREATE TEMPORARY TABLES 创建临时表
CREATE USER 		创建用户
FILE			文件
SUPER 
SHOW DATABASES    	显示数据库
RELOAD  		重新加载
SHUTDOWN 		关闭
REPLICATION SLAVE     	主从复制
REPLICATION CLIENT     	复制客户端
LOCK TABLES 		表加锁
PROCESS			存储过程

程序类:

FUNCTION		函数
PROCEDURE		程序
TRIGGER			触发器
CREATE			创建
ALTER			修改
DROP			删除
EXCUTE			执行

库和表级别:

		DATABASE		数据库
		TABLE 			表
		ALTER			修改
		CREATE			创建
		CREATE VIEW		创建视图
		DROP			删除
		INDEX			索引
		SHOW VIEW		视图显示
		GRANT OPTION:		能将自己获得的权限转赠给其他用户

数据操作

	SELECT	查询
	INSERT	插入
	DELETE	删除
	UPDATE	修改

字段级别

	SELECT(col1,col2,...)	查询的字段
	UPDATE(col1,col2,...)	修改的字段
	INSERT(col1,col2,...)	插入的字段

所有权限

	ALL PRIVILEGES 或 ALL

授权

参考:https://dev.mysql.com/doc/refman/5.7/en/grant.html 官网地址

GRANT priv_type [(column_list)],... ON [object_type] priv_level TO 'user'@'host' [IDENTIFIED BY 'password'] [WITH GRANT OPTION];
priv_type: ALL [PRIVILEGES]
object_type:TABLE | FUNCTION | PROCEDURE
priv_level: *(所有库) | *.* | db_name.* | db_name.tbl_name | tbl_name(当前库的表) | db_name.routine_name(指定库的函数,存储过程,触发器)

with_option: GRANT OPTION MAX_QUERIES_PER_HOUR count 每小时最大的查询数 MAX_UPDATES_PER_HOUR count 每小时最大的更新数 MAX_CONNECTIONS_PER_HOUR count 每小时最大的连接数 MAX_USER_CONNECTIONS count 最大用户连接

示例:

1、给本地用户授权某个数据库所有权限 all privileges : 表示所有权限 on hyt: 表示针对哪个数据库 to 'user'@'host' : 针对哪个用户 identified by : 表示对应用户和主机的密码 授权之后,我们使用这个用户登录,发现它只可以看到它权限之内的数据库

grant all privileges on hyt.* to 'hyt'@'localhost' identified by 'centos';

使用特定的用户连接数据库
mysql -uhyt -pcentos
show databases;


2、查看指定用户的授权信息 show grants for 'hyt'@'localhost'
3、给远程linux用户授权,并且指定了linux用户只能通过192.168.245.100这个ip地址进行连接mysql grant all privileges on 'linux'@'192.168.245.100' identified by 'centos' 使用命令授权后,使用如下命令进行刷新 flush privileges;

回收权限

语法

REVOKE priv_type [(column_list)] [, priv_type [(column_list)]] ... ON [object_type] priv_level FROM user [, user] ...

示例:

1、收回hyt用户的管理hyt数据库的所有权限 revoke all on hyt.* from hyt@'localhost' 查看用户授权信息 show grants for hyt@'localhost'