MySQL的DCL详解

DCL


全称:Data Control Language
作用:数据控制语言,用来创建数据库用户、控制数据库的访问权限

·DCL-管理用户

        用户存在mysql数据库中的user表

        ->查询用户

                USE mysql;

                SELECT * FROM user;

        ->创建用户

                CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';

        ->修改用户密码

                ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';

        ->删除用户

                DROP USER '用户名'@'主机名';

注意:

        ·主机名为通配符%表示可以在任意主机访问

        ·这类SQL开发人员操作的比较少,主要是DBA(Database Administrator 数据库管理员)使用

接下来对DCL-管理用户操作进行实际演示:

-- 查询原有用户
select * from user;

结果如下:

-- 创建用户 itcast,只能够在当前主机localhost访问,密码123456
create user 'itcast'@'localhost' identified by '123456';

再次查询,结果如下:

接下来测试itcast的访问权限,在控制台中使用itcast用户访问数据库并查询所有数据库

可以看出只有俩个,但实际上的数据库应该有7个

-- 创建用户 heima,可以在任意主机访问该数据库,密码123456
create user 'heima'@'%' identified by '123456';

结果如下:

-- 修改用户 heima 的访问密码为 1234
alter user 'heima'@'%' identified with mysql_native_password by '1234';

结果如下

-- 删除itcast@localhost用户
DROP user 'itcast'@'localhost';

结果如下:

以上就是管理用户的实际演示

·DCL-权限控制

其他权限描述及含义,可以直接参考官方文档

1.查询权限

SHOW GRANTS FOR '用户名'@'主机名';

2.授予权限

GRANT 权限列表 ON 数据库名.表名 TO '用户名'@‘主机名’;

3.撤销权限

REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@‘主机名’;

注意

·多个权限之间,使用逗号分隔

·授权时,数据库名和表名可以使用*进行通配,代表所有

·权限列表可以使用all,代表所有权限

接下来进行权限控制的实际操作:

-- 查询权限
SHOW GRANTS FOR 'heima'@'%';

结果如下:

-- 授予权限
GRANT all ON itheima.* TO 'heima'@'%';

结果如下:

-- 撤销权限
REVOKE all ON itheima.* FROM 'heima'@'%';

结果如下:

总结

  • 18
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值