如何定义 MySQL 数据库账号?
-
用户名的组成:用户名@可访问控制列表
-
用户名:5.7版本以前,用户名最大只有16个字节;之后的版本为 32 个字节
-
可访问控制列表:用户可以从哪些服务器上对数据库进行访问
- %:代表可以从所有外部主机进行访问
- 192.168.1.%:可以从 192.168.1 网段进行访问
- localhost:DB 服务器本地访问
-
-
使用 CREATE USER 命令建立用户
MySQL 常用的用户权限
常用的权限如下表所示:
类别 | 语句 | 说明 |
---|---|---|
Admin | Create User | 建立新的用户 |
Grant option | 为其他用户授予权限 | |
Super | 管理服务器的权限 | |
DDL | Create | 新建数据库、表 |
Alter | 修改表结构 | |
Drop | 删除数据库和表 | |
Index | 建立和删除索引 | |
DML | Select | 查询表中数据 |
Insert | 插入数据 | |
Update | 更新数据 | |
Delete | 删除数据 | |
Execute | 执行存储过程 |
通常开发人员只具有 DML 类的权限,如果想查看详细的权限列表,可执行命令:
show privileges;
何如为用户授权?
-
遵循最小权限原则,如:一个用户只具有只读权限,就不能授予除 select 之外的权限。
-
使用 Grant 命令对用户授权
grant 权限 on 数据库.表 to 用户(user@ip); # 回收权限 revoke 权限 on 数据库.表 from 用户(user@ip);
最后,若要查看 MySQL 命令的具体用法,如该命令有哪些参数等,可通过 \h 命令
来查看。