数据库 ·

网易MySQL微专业学习笔记(三)-Mysql权限管理

前言

这个系列属于个人学习网易云课堂MySQL数据库工程师微专业的相关课程过程中的笔记,本篇为其“MySQL数据库对象与应用”中的MySQL数据类型相关笔记。

所有笔记可能不定期更新,发布时不一定为最终版。

正文

 

连接数据库的必要条件

网络畅通
用户名密码正确
数据库需添加ip白名单
更细粒度的验证(库表列权限类型等)

权限粒度

Data Privileges

数据层次的权限
data:select,insert,update,delete

Definition Privileges

应用于逻辑对象
DataBase:create,alter,drop
Table:create,alter,drop
view/function/trigger/procedure:create,alter,drop

Administrator Privileges

管理权限
Shutdown DataBase
关闭数据库
Replication Slave
搭建数据库储存结构
Replication Client
数据库储存结构的一种权限
File Privilege
文件权限,将数据库的数据文本导出等操作。

创建用户并 赋权

1、使用mysql自带

create user 'netease'@'localhost' indentified by 'netease163';

grant select on *.* to 'netease'@'localhost' whith grant option;
2、更改数据库记录
3、grant语句会判断是否存在该用户,若不存在则创建新的。
grant select on *.* to 'netease'@'localhost' indentified by 'netease163' with grant option;

查看用户权限信息

查看当前用户:
show grants;
查看其他用户权限
show grants for netease@'localhost';

如何更改用户权限

回收不需要的权限
revoke select on *.* from netease@'localhost';
重新赋权
grant insert on *.* to netease@'localhost';

如何更改用户的密码

1、用新密码,grant语句重新授权
2、更改数据记录,update user表的Password字段
注意:用这种办法,更改完需要flush privileges刷新权限信息,不推荐

删除用户

drop user;
高危操作

With Grant Option

允许被授予权利的人把这个权利授予其他人

Mysql权限信息的存储结构

mysql权限信息是存储在数据表中的
mysql账号对应的密码也加密存储在数据库表中
每一种权限类型在元数据里都是枚举类型,表明是否有该权限。

Mysql权限上有哪些问题

使用Binary二进制安装管理用户没设置密码
Mysql默认的test库不受权限控制,存在安全风险。

mysql_secure_installation

二进制包中的的命令
可以为root设置一个密码
可以删除非本机登陆的root用户
可以删除一些空用户。
可以删除test database

小结

权限相关操作不要直接操作表,统一使用mysql命令。
使用二进制安装mysql安装后,需要重置管理用户(root)密码。
线上数据库不要留test库。

参与评论