MySQL-Databases Control Language
DCL(管理用户、授权)
1.SLQ分类
- DDL:操作数据库和表
- DML:增删改表中的数据
- DQL:查询表中数据
- DCL:管理用户、授权
2.DBA:数据库管理员
3.DCL:管理用户、授权
- 添加用户
# 语法 USE mysql; SELECT * FROM USER; -- 添加用户语法 CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码'; -- 添加本地用户 CREATE USER 'zzy'@'localhost' IDENTIFIED BY 'admin'; -- 添加任意客户端可以登录的用户 CREATE USER 'zzy'@'%' IDENTIFIED BY 'admin'; * 通配符: %表示可以在任意主机上使用用户登录数据库
- 删除用户
-- 删除用户语法 DROP USER '用户名'@'主机名'; -- 删除用户 DROP USER 'zzy'@'%';
- 修改用户密码:
-- 修改密码格式 UPDATE USER SET PASSWORD = PASSWORD('新密码')WHERE USER = '用户名'; -- 修改密码 UPDATE USER SET PASSWORD = PASSWORD('abcd') WHERE USER = 'remote_user'; -- 刷新权限 FLUSH PRIVILEGES -- 必须要刷新权限不然不生效 -- 第二种设置(修改)密码的方式 -- 修改密码的格式 SET PASSWORD FOR '用户名'@'主机名' = PASSWORD('新密码'); -- 修改密码 SET PASSWORD FOR 'zzy'@'localhost' = PASSWORD('123');
mysql中忘记了root用户的密码?
cmd -- > net stop mysql 停止mysql服务 --使用管理员运行cmd命令(步骤1的)
使用无验证方式启动mysql服务
mysqld --skip-grant-tables
打开新的cmd窗口,直接输入mysql命令,敲回车。就可以登录成功
update user set password = password('新密码') where user='root';
关闭两个窗口
打开任务管理器,手动结束mysqld.exe的进程
启动mysql服务
使用新密码登录。
权限管理
查询用户:
切换到mysql数据库
USE mysql;
查询user表
select * from user;
查询权限:
-- 查询权限 -- 查询权限语法 SHOW GRANTS FOR '用户名'@'主机名'; -- 查询权限 SHOW GRANTS FOR 'remote_user'; SHOW GRANTS FOR 'root';
授予权限
-- 授予权限 grant 权限列表 on 数据库名.表名 to '用户名'@'主机名'; -- 授予权限 授予‘remote_user’ 对db3中emp表的选择权限 GRANT SELECT ON db3.`emp` TO 'remote_user'@'%'; -- 授予权限 增删改 GRANT SELECT,DELETE,UPDATE ON db3.`emp` TO 'remote_user'@'%'; -- 授予全部权限 GRANT ALL ON *.* TO 'zzy'@'localhost';
撤销授权
-- 撤销授权语法 REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名'; -- 撤销remote_user update 和 delete权限 REVOKE UPDATE,DELETE ON db3.`emp` FROM 'remote_user'@'%'; SHOW GRANTS FOR 'remote_user';