dcl语句:
dcl:数据控制语言,用来管理数据库用户、控制数据库的访问权限
dcl管理用户:
1.查询用户
用户信息都是存放在mysql中的user表中,所以我们可以查询数据库中的user表来查看用户信息。
use mysql;
select * from user;
2.创建用户
creat user '用户名'@'主机名' identfied by '密码';
创建一个用户itcast
create user 'itcast' @ 'localhost' identified by '123123';
这时候我们刷新一下用户表会发现我们的itcast这个用户已经创建完成了,我们发现他的权限基本都是N;
这时候我们使用cmd命令登入查看该用户下的数据库,我们会发现,当前用户下只有俩个数据库,和root用户下比少了很多,即它没有访问其他用户的权限
我们目前创建的这个这个用户只能在本机上进行访问,如果我们想在任意主机上进行访问该怎么办呢?
我们只需要将== localhost 换成通配符 % ==
create user 'xiaowang' @ '%' identified by '123123';
修改用户密码
alter user '用户名'@'主机名' idetified with mysql_native_password by '新密码';
其中:mysql_native_password是一种mysql的加密方式,mysql_native_password 是 MySQL 中用于身份验证的默认密码策略。它使用 MySQL 服务器上的密码进行加密来验证用户的身份。
alter user 'xiaowang'@'%' identified with mysql_native_password by '123456';
这时候我们通过exit推出数据库后重新登入xiaowang用户检查密码是否修改完成
删除用户
drop user 'itcast'@'localhost';
以上介绍的sql开发人员使用的比较少,主要是dba(数据库管理员)使用。
dcl语句——权限控制
我们在刚刚创建了用户之后发现我们的用户不能访问其他数据库,这就是我们没有对其进行权限配置,接下来就让我们学习以下权限控制。
我们这里介绍常用的一些权限:
主要介绍以下三种使用:
1.查询权限
show crant for ‘用户名’@‘主机名’;
2.授予权限
grant 权限列表 on 数据库名.表名 to ‘用户名’@‘主机名’;
grant all on study.* to ‘xiaowang’@‘%’;
3.撤销权限
revoke 权限列表 on 数据库名.表名 from ‘用户名’@‘主机名’;