MySQL基础:DCL
发布日期:2021-05-07 15:15:42 浏览次数:21 分类:原创文章

本文共 2016 字,大约阅读时间需要 6 分钟。


目录













DCL (Data Control Language)



  • DDL: create / alter / drop

  • DML:insert /update/delete

  • DQL :select /show

  • DCL :grant /revoke


概念



  • 现在默认使用的都是 root 用户,超级管理员,拥有全部的权限。但是,一个公司里面的数据库服务器上面可能同时运行着很多个项目的数据库。所以,我们应该可以根据不同的项目建立不同的用户,分配不同的权限来管理和维护数据库。

  • mysqld MySQL 主程序服务器端

  • mysql MySQL 命令行工具客户端



创建用户



  • 语法:


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


  • 关键字说明























关键字
说明
'用户名'

将创建的用户名
'主机名' 指定该用户在哪个主机上可以登陆,如果是本地用户可用 localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%'密码' 该用户的登陆密码,密码可以为空,如果为空
'密码'

该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器


  • 具体操作:

    • 创建 user1 用户,只能在 localhost 这个服务器登录 mysql 服务器,密码为 123



create user 'user1'@'localhost' identified by '123';


  • 创建 user2 用户可以在任何电脑上登录 mysql 服务器,密码为 123


create user 'user2'@'%' identified by '123';


  • 注:创建的用户名都在 mysql 数据库中的 user 表中可以查看到,密码经过了加密。



给用户授权



  • 用户创建之后,没什么权限,需要给用户授权

  • 语法:


GRANT 权限 1, 权限 2... ON 数据库名.表名 TO '用户名'@'主机名';


  • 关键字说明:



























关键字
说明
GRANT…ON…TO

授权关键字
权限 授予用户的权限,如 CREATE、ALTER、SELECT、INSERT、UPDATE 等。如果要授予所有的权限则使用 ALL
数据库名.表名 该用户可以操作哪个数据库的哪些表。如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*
'用户名'@'主机名'

给哪个用户授权,注:有
2
对单引号


  • 具体操作:

    • user1 用户分配对 test 这个数据库操作的权限:创建表,修改表,插入记录,更新记录,查询



grant create,alter,insert,update,select on test.* to 'user1'@'localhost';




    • 用户名和主机名要与上面创建的相同,要加单引号。


  • user2 用户分配所有权限,对所有数据库的所有表


grant all on *.* to 'user2'@'%';

撤销授权



  • 语法:


REVOKE 权限 1, 权限 2... ON 数据库.表名 from '用户名'@'主机名';


























关键字
说明
REVOKE…ON…FROM

撤销授权的关键字
权限 用户的权限,如 CREATE、ALTER、SELECT、INSERT、UPDATE 等,所有的权限则使用 ALL
数据库名.表名 对哪些数据库的哪些表,如果要取消该用户对所有数据库和表的操作权限则可用*表示,如*.*
'用户名'@'主机名'

 给哪个用户撤销,注:有 2 对单引号



  • 具体操作:

    • 撤销 user1 用户对 test 数据库所有表的操作的权限



revoke all on test.* from 'user1'@'localhost';

查看权限



  • 语法:


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


  • 具体操作:

    • 查看 user1 用户的权限







    • usage 是指连接(登陆)权限,建立一个用户,就会自动授予其 usage 权限(默认授予)。



删除用户



  • 语法:


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


  • 具体操作:

    • 删除 user2



drop user 'user2'@'%';


修改管理员密码



  • 语法


mysqladmin -uroot -p password 新密码


  • 注意

    • 需要在未登陆 MySQL 的情况下操作,新密码不需要加上引号。


  • 具体操作:

    • 将 root 管理员的新密码改成 123456

    • 要求输入旧密码

    • 使用新密码登录




修改普通用户密码



  • 语法:


set password for '用户名'@'主机名' = password('新密码');


  • 注意

    • 需要在登陆 MySQL 的情况下操作,新密码要加单引号


  • 具体操作:

    • 将'user1'@'localhost'的密码改成'666666'

    • 使用新密码登录,老密码登录不了





  • 【注】参考黑马MySQL教程


上一篇:《Redis开发与运维》阅读笔记:键管理之单个键管理
下一篇:MySQL基础:事务

发表评论

最新留言

表示我来过!
[***.240.166.169]2025年03月24日 09时32分00秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章