DCL概念
##DCL : 管理用户,授权
1. 管理用户
* 添加用户:
* 语法:
CREATE USER '用户名' @'主机名' IDENTIFIED BY '密码' ;
* 例子:
CREATE USER 'zhangsan' @'localhost' IDENTIFIED BY '123' ;
CREATE USER 'lisi' @'%' IDENTIFIED BY '123' ;
* 删除用户:
* 语法:
DROP USER '用户名' @'主机名' ;
* 例子:
DROP USER 'zhangsan' @'localhost' ;
* 修改用户密码:
* 语法:
UPDATE USER SET PASSWORD = PASSWORD ( '新密码' ) WHERE USER = '用户名' ;
SET PASSWORD FOR '用户名' @'主机名' = PASSWORD ( '新密码' ) ;
* 例子:
UPDATE USER SET PASSWORD = PASSWORD ( 'abc' ) WHERE USER = 'lisi' ;
* mysql中忘了root用户的密码?
* 1. cmd -- - > net stop mysql -- 停止mysql服务
* 需要管理员来运行该cmd
* 2. 使用无验证方式启动mysql服务:mysqld -- skip- grant- tables
* 3. 打开新的cmd窗口,直接输入mysql命令,敲回车。就可以登录成功
* 4. use mysql;
* 5. update user set password = password ( '你的新密码' ) where user = 'root' ;
* 6. 关闭两个窗口
* 7. 打开任务管理器,手动结束mysqld. exe的进程
* 8. 启动mysql服务
* 9. 使用新密码登录
* 查询用户:
* 1. 切换到mysql数据库
* USE mysql
* 2. 查询user表
* select * from user;
* 通配符: % 表示可以在任意主机使用用户登录数据库
2. 权限管理:
* 查询权限:
** 语法:
SHOW GRANTS FOR '用户名' @'主机名' ;
SHOW GRANTS FOR 'lisi' @'%' ;
* 授予权限:
** 语法:
grant 权限列表 on 数据库名. 表名 to '用户名' @'主机名' ;
** 例子:
GRANT SELECT , DELETE , UPDATE ON db3. account TO 'lisi' @'%' ;
-- 给zhangsan用户所有权限
GRANT ALL ON * . * TO 'zhangsan' @'localhost'
* 撤销权限:
** 语法:
revoke 权限列表 on 数据库名. 表名 from '用户名' @'主机名' ;
** 例子:
REVOKE UPDATE ON db3. account FROM 'lisi' @'%' ;
-- 给lisi用户撤销所有权限
REVOKE ALL ON * . * FROM 'lisi' @'%' ;