DCL 通常是 DBA(数据库管理员)使用的语句,管理用户与数据库权限等
1.用户管理
1.查询用户
切换到系统自带的 mysql 数据库
use mysql;
查询 user 表
select * from user;
( Host 表示可访问 ip ,其中 “%” 表示任意ip)
2.创建用户
必须指定用户名,主机名,与密码
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
3.删除用户
必须指定用户名和主机名
DROP USER '用户名'@'主机名';
4.修改用户密码
修改指定名称(可加主机名)用户的密码(通用 sql 方式)
UPDATE USER SET PASSWORD = PASSWORD('新密码') WHERE USER = '用户名';
修改指定“用户名及主机名”的用户密码( DCL 特有的方式)
SET PASSWORD FOR '用户名'@'主机名' = PASSWORD('新密码');
忘记了 root 密码?
先关闭mysql 服务 -> 以管理员运行 cmd
在此窗口中,输入如下命令,跳过密码验证
mysqld --skip-grant-tables
然后,不要关闭此窗口,新打开一个 cmd,输入以下命令可直接登录
mysql
此时,你就已经以无验证方式登录 mysql ,改啥都可以。修改 root 密码
update user set password = password('你的新密码') where user = 'root';
关闭这 2 个小窗口,使用任务管理器结束 mysqld.exe 进程
重新启动 mysql 服务,使用新密码登录即可。
2.用户权限管理
1.查询用户权限
SHOW GRANTS FOR '用户名'@'主机名';
2.授予用户权限
如果是所有权限,使用 ALL ,所有数据库所有表,使用 *.*
grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';
3.撤销用户权限
revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';