如何在给定场景下给用户授权
创建账号
用户名@<可访问控制列表>
%
表示可以从所有外部主机访问192.168.1.%
表示可以从 192.168.1 网段访问localhost:DB
服务器本地访问
- 使用
CREATE USER
命令建立用户
给定权限
show privileges;
可以查看所有支持的权限常见的用户权限
| 类别 | 语句 | 说明 | | —- | —- | —- | | Admin | Create User | 建立新用户的权限 | | | Grant option | 授权的权限 | | | Super | 管理服务器的权限 | | DDL | Create | 新建 database,table 的权限 | | | Alter | 修改 table 结构的权限 | | | Drop | 删除 database 和 table 的权限 | | | Index | 建立和删除 index 的权限 | | DML | Select | 查询 table 数据的权限 | | | Insert | 向 table 插入数据的权限 | | | Update | 更新 table 中数据的权限 | | | Delete | 删除 table 中数据的权限 | | | Execute | 执行存储过程的权限 |
授权、撤权语句
- 遵循最小权限原则
使用
GRANT
命令对用户授权grant <权限名,可多个> on
. to @ ; 使用
REVOKE
命令对用户撤销权限revoke <权限名,可多个> on
. to @ ; - 权限名、db_name、table_name 可以用
*
代替
- 权限名、db_name、table_name 可以用
查看权限
show grants for current_user; show grants for 你的用户; show grants for root@’localhost’;
如何保证数据库账号的安全
数据库用户管理流程规范
- 最小权限策略
- 密码强度策略
- 密码足够复杂
- 密码过期原则
- 定时过期无用密码
alter user 'test'@'%' password expire;
- 限制历史密码重用原则
- 避免新密码和过期密码一样,
create user
的password
选项alter user user() identified by '<password>'
- 需要版本要求
- 避免新密码和过期密码一样,
- 查看
select * from mysql.user;