如何在给定场景下为某用户授权?
-
如何定义mysql数据账号?
- 用户名@可访问控制列表。(5.7之前只有16个字节。5.8之后32个字节)
- %:代表可以从所有外部主机访问
- 192.168.1.%:表示可以从192.168.1网段访问
- localhost:db服务器本地访问
- 使用CREATE USER命令建立用户
- 用户名@可访问控制列表。(5.7之前只有16个字节。5.8之后32个字节)
-
mysql常用的用户权限
-
admin
- Create User 建立新的用户权限
- Grant ooption 为其他用户授权权限
- super 管理服务器的权限
-
DDL
- Create 新建数据库,表的权限
- Alter 修改表结构的权限
- Drop 删除数据库和表的权限
- Index 建立和删除索引的权限
-
DML
- Select 查询表中数据的权限
- Insert 向表中插入数据的权限
- Update 更新表中数据的权限
- Delete 删除表中数据的权限
- Execure 执行存储过程的权限
(查看mysql的权限表。 show privileges;)
-
-
如何为用户授权?
- 遵循着小权限原则
- 使用grant 命令对用户授权
- grant select, insert, update, delete on db.tb to user@ip;-----给权限
- revoke delete on db.tb from user@ip; ----收回权限
如何保证数据库账号的安全?
-
数据库用户管理流程规范
-
最小权限原创
-
密码强度策略
-
密码过期原则
(5.7限制了密码过期时间)
(5.8限制了密码使用次数)
-
限制历史密码重用原则
-
如何从一个实例迁移数据库账号到另一个实例?
解决思路
- 导出用户建立及授权语句
- Pt-show-grants u=root,p=123,h=localhost