权限类别:
管理类
程序类
数据库级别
表级别
字段级别
管理类:
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'