课程名称:MySQL面试指南
课程章节:【实战】对用户授权指定的权限
主讲老师:sqlercn
课程内容:
今天学习的内容包括:
如何定义MySQL数据库账号?
MySQL常用的用户权限
如何为用户授权
课程收获:
如何定义MySQL数据库账号?
用户名@可访问控制列表
用户名长度:5.7及之前为16个字节,之后为32个字节
可访问控制列表:
- localhost:服务器本地访问
- %:代表可以从所有外部主机访问
- 192.168.1.%:表示可以从192.168.1网段访问
注意:
- %指定所有外部主机,并不包含localhost
- 如果同一个用户设置了多个可访问控制列表,MySQL会使用最匹配的那个
- 当客户端连接数据库时,不需要提供@后面的IP,这个是由MySQL自动识别的
创建用户示例:
create user user@’%’ identified by ‘PASSWORD’
查看用户示例:
select User,Host,plugin from mysql.user;
删除用户示例:
drop user user@’%’
查看当前是哪个用户:
select current_user;
MySQL常用的用户权限
可以通过 show privileges 查看
下面大致分一下类别:
+------+------------+--------------------------+
| 类别 | 语句 | 说明 |
+------+------------+--------------------------+
| |Create user | 建立新的用户的权限 |
| |------------+--------------------------+
| DCL |Grant option| 为其他用户授权的权限 |
| |------------+--------------------------+
| | Super | 管理服务器的权限 |
+------+------------+--------------------------+
| | Create | 新建数据库,表的权限 |
| |------------+--------------------------+
| | Alter | 修改表结构的权限 |
| DDL |------------+--------------------------+
| | Drop | 删除数据库和表的权限 |
| |------------+--------------------------+
| | Index | 建立和删除索引|的权限 |
+------+------------+--------------------------+
| | Select | 查询表中数据的权限 |
| |------------+--------------------------+
| | Insert | 向表中插入数据的权限 |
| |------------+--------------------------+
| DML | Update | 更新表中数据的权限 |
| |------------+--------------------------+
| | Delete | 删除表中数据的权限 |
| |------------+--------------------------+
| | Execute | 执行存储过程的权限 |
+------+------------+--------------------------+
如何为用户授权
遵循最小权限原则
使用Grant命令对用户授权:
grant select,insert,update,delete on db.tb to user@ip;