1、如何定义MySQL数据库账号?
- MySQL用户名由两部分组成,中间由 @ 符号隔开:
用户名 @ 可访问控制列表
MySQL 5.7 用户名长度只有16个字节;MySQL 8.0 用户名长度为32个字节;
可访问控制列表表示“用户可以从哪些服务器上对数据库进行访问”,书写格式如下:
- %:代表可以从所有外部主机进行访问(默认值)
- 192.168.1.%:可以从 192.168.1 网段进行访问
- localhost:DB 服务器本地访问
- 多个IP地址用逗号“
,
”隔开
- 使用 CREATE USER 命令建立用户
2、用户常用的用户权限
语句 | 说明 | |
---|---|---|
Admin | Create User | 建立新的用户 |
Grant Option | 为其他用户授权 | |
Super | 管理服务器 | |
DDL | Create | 新建数据库、表 |
Alter | 修改表结构 | |
Drop | 删除数据库、表 | |
Index | 建立和删除索引 | |
DML | Select | 查询表中的数据 |
Insert | 向表中插入数据 | |
Update | 更新表中的数据 | |
Delete | 删除表中的数据 | |
Execute | 执行存储过程 |
MySQL中的权限有很多,使用 show privileg
命令查看MySQL支持的权限列表。
3、如何为用户授权?
一定要遵循最小授权原则
- 使用
Grant
命令对用户进行授权
// 将db库中tb表的增删改查权限授予user@ip用户
grant select, insert, update, delete on db.tb to user@ip;
- 使用
revoke
命令收回用户的授权
revoke delete on db.tb from user@ip;