mysql学习笔记,数据控制语言DCL

大家好,我是天空之城,今天给大家带来,mysql数据控制语言DCL。sql语言按功能分为四类,DDL DML DQL DCL,DCL用于管理用户和权限。
QQ截图20200610222336.png

QQ截图20200610222537.png

QQ截图20200610222609.png

一、用户管理
DCL主要能做什么
创建用户
删除用户
修改密码
给用户赋予权限
撤销用户权限

#创建用户
CREATE USER '用户名' [@'主机名'] [IDENTIFIED BY '密码'];
注意: MySQL的用户账号由两部分组成:用户名和主机名,即用户名@主机名,主机名可以是IP或机器名称,主机名为%表示允许任何地址的主机远程登录MySQL数据库。
#删除用户
DROP USER '用户名' [@'主机名'];
#修改密码
ALTER USER '用户名'@'主机名' IDENTIFIED BY新密码';

进入数据库,查看user表
select * from  user\G;
root用户只能在localhost本机登录,确保数据库的安全性

二 创建用户
create user  'liusan'@'%' identified by '123456';
创建liusan用户,可以在任何机器上登录,密码123456

create user  'liusan'@'192.168.0.221' identified by '123456';
创建liusan用户,可以在ip地址的'192.168.0.221'机器上登录,密码123456

ipconfig查看电脑的ip地址

三 权限管理
在MySQL数据库中,使用grant命令授权、revoke命 令撤销授权。
#授权
grant all privileges on databaseName.tableName to '用户名' [@'主机名'];
#撤销授权
revoke all privileges on databaseName.tableName from '用户名' [@'主机名'];
#刷新权限
FLUSH PRIVILEGES;
#查看权限
show grants for '用户名' [@'主机名'];

把查看数据库权限赋予给liusan用户
grant select on mydb.* to 'liusan'@'%';
revoke select on mydb.* from 'liusan'@'%';


四、禁止root用户远程登录
root用户是数据库的超级管理员,必须禁止其远程登录,才能确保数据库安全,防止被暴力破解密码
账号有两部分组成,用户名和主机名
把root用户的主机名改为localhost
update user set host='localhost' where user='liusan';
限制liusan只能在本机localhost主机登录


五、如何找回root用户密码
第一步,关闭mysql服务
第二步,重启mysql时关闭权限验证
mysqld --defaults-file= "C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" --console --skip-grant-tables --shared-memory
说明:参数--defaults- file的值为配置文件my.ini的完整路径。
show variables like '%datadir%';

第三步,修改root密码
MySQL关闭权限验证后,直接通过mysql命令即可连接到数据库,并可正常执行各类操作。
#刷新权限
FLUSH PRIVILEGES;
ALTER USER 'root' @'localhost' IDENTIFIED BY '123456'; 
第一个窗口保持不关
第四步,正常启动mysql服务
重新开一个窗口




QQ截图20200610224511.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章