1

权限组成结构

  • 用户:有用自己的用户名和密码,并且拥有能够操作的权限。
  • 操作权限:限制一个用户能够做什么,可以配置到全局/数据库/表/列

MySQL主要权限

权限 权限级别 权限说明
create 数据库、表或索引 创建数据库、表、索引
drop 数据库或表 删除数据库或表
alter 更改表,比如添加字段、索引
delete 删除数据
index 索引
insert 插入
select 查询
update 更新
create view 视图 创建视图
execute 存储过程 执行存储过程

图片描述

权限的分布

  • 全局:针对所有数据库都有效
  • 数据库:只针对当前数据库有效

图片描述
MySQL中权限的设置也是存储在数据库中的:

  • mysql.user:用户表、包括用户名,密码,主机,全局权限,性能限制
  • mysql.db:数据库权限设置
  • mysql.table_priv:表权限设置
  • mysql.column_priv:列权限设置

权限相关命令

完整语法:

  • grant 权限
  • on 数据库对象
  • to 用户 identified by 密码
  • with grant option(给别人权限)
/* 创建用户 */
create user '用户名'@'访问限制' identified by '密码';

/* 赋予anthony用户select、insert权限  *.*代表所有数据库对象 */
grant select,insert on *.* to 'anthony'@'localhost';  
/* 创建用户并且赋予权限 */
grant select,insert on *.* to 'anthony'@'localhost' identified by '密码';

/* 加上with grant option(给别人权限) */
grant select,insert on *.* to 'anthony'@'localhost' identified by '密码' with grant option;

刷新权限

flush privileges;

查看权限

/* 当前用户权限 */
show grants;

/* 特定用户权限 */
show grants for 用户@访问限制;

回收权限

语法:revoke 权限 on 数据库对象 from 用户;

使用revoke撤销全部权限,操作者必须拥有全局的create user或update权限
revoke all on *.* from anthony;

删除用户

drop user 用户@限制访问;

drop user 'anthony'@'%';

已注销
35 声望8 粉丝