一、进一步认识 DCL
DCL 是数据控制语言,主要用于管理用户和权限。在企业中这部分工作通常是由 DBA 完成,一般开发人员很少接触。
1.2. DCL 主要能做什么
- 创建用户
- 删除用户
- 修改密码
- 给予用户权限
- 撤销用户权限
二、权限体系
MySQL 的权限体系大致分为5个层级,全局层级、数据库层级、表层级、列层级和子程序层级。
MySQL 的权限信息主要存储在以下几张表中,当用户连接数据库时,MySQL 会根据这些表对用户进行权限验证。
三、用户管理
在MySQL中使用 CREATE USER 创建用户,用户创建后没有任何权限。语法如下:
CREATE USER '用户'[@'主机名'][IDENTIFIED BY'密码']
TIP:MySQL 的用户账号由两部分组成:用户名和主机名,即用户名@主机名,主机名可以是 IP 或机器名,主机名为 % 表示允许任何地址的主机远程登录 MySQL 。在创建用户的时候不指定主机名默认为 % 。
删除用户和修改密码语法如下:
# 删除用户 DROP USER '用户名'[@'主机名']; # 修改密码 ALTER USER '用户名'@'主机名' IDENTIFIED BY '新密码'
例如:
1. 创建一个用户 zhangsan 允许在任何计算机上登录
create user 'zhangsan'@'%' identified by '123456';
2. 创建一个用户 lisi 只允许在 IP 为 192.168.6.99 这台电脑上登录
create user 'zhangsan'@'192.168.6.99 ' identified by '123456';
2. 创建一个用户 wangwu 只允许本地登录
create user 'wangwu'@'localhost' identified by '123456';