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'@'%';