MySQL数据库 10.DCL操作

news2024/12/20 16:17:15

目录

🤔 前言:

🤔DCL介绍:

🤔1.DCL管理用户:

1.查询用户:

图示:

 2.创建用户

示例1:

运行结果:​

示例2:

 运行结果:​

3.修改用户密码

示例:

运行结果:​

4.删除用户:

示例:

运行结果:​

🤔 2.DCL管理权限:

1.查询用户当前权限

 示例:

运行结果: ​

2.授予用户权限

 示例:

3.撤销权限

示例:

运行结果:​

🤔结束!


🤔 前言:

 本篇将进行讲解SQL四大语句操作的最后一个:DCL操作,它在实际生活中占据比较关键的地位,因为其起到了管理数据库用户以及控制数据库的访问权限的功能,因此我们要掌握掌握好这个语句的各种用法。

🤔DCL介绍:

DCL(Data Control Language)指的是对数据库的控制语言,主要用于数据库用户权限的控制、数据安全保护以及数据完整性的保证。

DCL语言包含三个关键字:

📖1. GRANT:用于给用户或用户组授予某些权限。

📖2. REVOKE:用于撤销用户或用户组的某些权限。

📖3. DENY:用于拒绝用户或用户组的权限。

GRANT语句用于授予用户或用户组的某些权限,例如SELECT、INSERT、UPDATE、DELETE等。REVOKE语句用于撤销授予的权限,将用户或用户组的权限还原到默认状态。DENY语句用于拒绝用户或用户组的权限,即使授予了某些权限,DENY语句也可以覆盖掉权限。

🤔1.DCL管理用户:

1.查询用户:

  • 系统中的所有数据都是存储在名字为mysql这个数据库之中的user表的,因此我们先选中数据库mysql,再展示user表就可以查询所有的用户信息。
USE mysql;
select *from user;

图示:

 2.创建用户

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

示例1:

创建用户itcast,只能在当前主机localhost访问,密码是123456。

create user 'itcast'@'localhost' identified by '123456';

运行结果:

 确实创建了一个名字叫做itcast的用户,我们可以尝试通过cmd登录该用户。

 登录成功:

 我们通过这个用户查询数据库有多少:

 我们可以发现通过这个用户登陆上去之后,我们的数据库展示并不完全,这是由于我们初始设置的时候并没有给这个用户分配各项权限。

示例2:

创建用户bac,可以在任意主机上访问该数据库,密码是123456。

create user 'bac'@'%' identified by '123456';

 运行结果:

 确实创建了一个用户bac,密码是123456。这里我们没法再次进行测试,因为本人只有一个主机。

3.修改用户密码

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

示例:

修改用户bac的访问密码为12345

ALTER USER 'bac'@'%' IDENTIFIED with mysql_native_password by'12345';

运行结果:

4.删除用户:

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

示例:

删除bac用户

drop user 'bac'@'%';

运行结果:

🤔 2.DCL管理权限:

  • 多个权限之间,使用逗号分隔
  • 授权时,数据库名和表名可以使用*进行通配,代表所有权限。
权限说明权限说明
ALL,ALL PRIVIEGES所有权限SELECT查询数据
INSERT插入数据UPDATE修改数据
DELETE删除数据ALTER修改表
DROP删除数据库/表/视图CREATE创建数据库/表

1.查询用户当前权限

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

 示例:

查询itcast用户当前具有的权限:

show grants for 'itcast'@'localhost';

运行结果:
 

 这句话的意思是当前的itcast没有任何权限,仅仅能够登录上mysql服务器。

2.授予用户权限

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

 示例:

我们把test数据库的所有表的所有权限都授权给itcase

grant all on test.* to 'itcast'@'localhost';

此时我们先不执行这个语句,从cmd中登录itcast用户查看能否访问到test这个数据库,可以发现此时是访问不到的,没有访问这个数据库的权限。

 我们执行这条语句之后:

 此时我们通过这个语句已经向itcast用户开放了操纵数据库tset的所有权限,我们简单的展示一下展示test中的所有表

可以成功访问。

3.撤销权限

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

示例:

撤销itcast的test数据库的所有权限

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

运行结果:

此时itcast关于test数据库的一切权限都被撤销。

🤔结束!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/612279.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法修炼之筑基篇——筑基一层中期(解决01背包,完全背包,多重背包)

✨博主:命运之光​​​​​​ 🦄专栏:算法修炼之练气篇​​​​​ 🍓专栏:算法修炼之筑基篇 ✨博主的其他文章:点击进入博主的主页​​​​​​ 前言:学习了算法修炼之练气篇想必各位蒟蒻们的基…

安全——网络安全协议的引入

TCP/IP安全缺陷 信息泄露 概述 网络中投递的报文往往包含账号、口令等敏感信息,若这些信息泄露则是灾难性的后果。其中嗅探是一种常见而隐蔽的网络攻击手段。 嗅探 概述 问题:在共享式网络架构下,所有的数据都是以广播方式进行发送&…

程序员大专毕业,月薪2w是什么体验?

在这个数据驱动的时代,大数据行业的发展前景也非常广阔,我相信我的未来会越来越光明 01 开始学习 是迈向前方的第一步 我是三月,一个来自小城市的大专毕业生。现在在杭州一家公司做大数据开发工程师,目前薪资是20k*13。 我本身…

运维小白必学篇之基础篇第十三集:网络概述中继实验

网络概述中继实验 实验作业(主机名为自己的名字): 1、搭建中继环境,要求如下: 网络要求: 内网:192.168.50.50 网关:192.168.50.254 192.168.60.254 外网:192.168.60.60 主…

【论文阅读】An Object SLAM Framework for Association, Mapping, and High-Level Tasks

一、系统概述 这篇文章是一个十分完整的物体级SLAM框架,偏重于建图及高层应用,在前端的部分使用了ORBSLAM作为基础框架,用于提供点云以及相机的位姿,需要注意的是,这篇文章使用的是相机,虽然用的是点云这个…

DevOps该怎么做?

年初在家待了一段时间看了两本书收获还是挺多的. 这些年一直忙于项目, 经历了软件项目的每个阶段, 多多少少知道每个阶段是个什么, 会做哪些事情浮于表面, 没有深入去思考每个阶段背后的理论基础, 最佳实践和落地工具. 某天leader说你书看完了, 只有笔记没有总结, 你就写个总结…

小白必看!轻松理解和解决MySQL幻读问题!

大家好,我是小米!今天我来给大家分享一下关于MySQL数据库中常见的一个问题——幻读,以及如何解决它。相信对于数据库开发和管理的小伙伴们来说,幻读是一个相对棘手的问题,但只要我们掌握了正确的解决方法,它…

网络故障管理

网络故障管理是以最快的方式查找、隔离和排除网络故障的过程。故障管理是网络管理的重要组成部分,它通过快速解决故障来最大限度地减少停机时间并防止设备故障,从而确保最佳的网络可用性并防止业务损失。 网络故障监控是故障管理的第一步,因…

Linux Shell脚本攻略

一、echo命令 1、在echo中转义换行符 默认情况下,echo会在输出文本的尾部追加一个换行符。可以使用选项-n来禁止这种行为。 echo同样接受双包含转义序列的双引号字符串作为参数。在使用转义序列时,需要使用echo -e "包含转义序列的字符串"这…

有哪些测试框架和工具推荐? - 易智编译EaseEditing

在软件测试领域,有许多测试框架和工具可供选择。以下是一些常见的测试框架和工具的推荐: Selenium: 一个用于自动化Web应用程序测试的流行框架。它支持多种编程语言,并提供丰富的功能和灵活性。 JUnit: 一个用于Java应用程序的单元测试框架…

MongoDB(学习笔记1.0)

最近在学非关系型数据库MongoDB,猛地用起来的真的没关系型数据库方便啊。 首先还是数据库的安装: 安装直接去官网安装即可,官网地址:MongoDB: The Developer Data Platform | MongoDB 当前也有免安装版的,这里就不再…

毕业三年,自学软件测试到就业,我用了4个月

我转行的经历 17年毕业,普通专科,通信专业。 当初选择这个专业是因为有一个校企合作,承诺学生毕业之后给学生安排就业,在学校里面混了三年之后,学校也是履行了当初安排就业的承诺,给我“发配”到了上海&a…

chatgpt赋能python:Python同一行输入

Python同一行输入 在Python编程中,你可能需要在同一行中输入多个命令或语句。这可以通过使用分号来实现。 在本文中,我们将介绍如何在Python中使用同一行输入,并探讨其优缺点。 使用分号实现同一行输入 在Python中,分号&#x…

地震勘探基础(九)之地震速度分析

速度分析 在地震资料数字处理中,速度分析是动校正和水平叠加和地震偏移的基础。 在水平界面情况下,共中心点时距曲线方程是一条双曲线。在共中心点时距曲线中,炮检距 x x x 和时间 t 0 t_0 t0​ 都是已知的,只有速度 v v v 是…

30天从入门到精通TensorFlow1.x 第五天,跨计算设备执行计算图-cpu

一、接前一天 前天学习了,数据流图,今天尝试在不同设备上(cpu或者gpu)来执行计算图。 本次使用cpu来执行,但是不涉及gpu。gpu放在后面学习,这里比较重要。 二、示例 1. 先看看自己的设备 from tensorfl…

My Note of Diffusion Models

Diffusion Models Links: https://theaisummer.com/diffusion-models/ Markovian Hierachical VAE rvs: data: x 0 x_{0} x0​,representation: x T x_{T} xT​ ( p ( x 0 , x 1 , ⋯ , x T ) , q ( x 1 , ⋯ , x T ∣ x 0 ) ) (p(x_0,x_1,\cdots,x_T),q(x_1,\cdots,x_{T…

AcWing 回转游戏 dfs IDA* 剪枝 统一操作 java

🍑 算法题解专栏 🍑 回转游戏 如下图所示,有一个 # 形的棋盘,上面有 1 , 2 , 3 1,2,3 1,2,3 三种数字各 8 8 8 个。 给定 8 8 8 种操作,分别为图中的 A s i m H A \\sim H AsimH。 这些操作会按照图中字母和箭头…

ChatGPT会取代低代码开发平台吗?

编程作为一种高端技能,向来是高收入高科技的代名词。近期,伴随着ChatGPT在全球的爆火,过去通过窗口“拖拉拽”的所见即所得方式的低代码开发模式,在更加智能和更低成本的AI搅局之下,又面临了更深层次的影响。 低代码平…

MySQL redo log、undo log、binlog

MySQL是一个广泛使用的关系型数据库管理系统,它通过一系列的日志来保证数据的一致性和持久性。在MySQL中,有三个重要的日志组件,它们分别是redo log(重做日志)、undo log(回滚日志)和binlog&…

MyBatis深入学习总结

MyBatis总结 MyBatis入门操作 简介 原始jdbc操作(查询数据) 原始jdbc操作(插入数据) 原始jdbc操作的分析 原始jdbbc开发存在的问题如下: 数据库连接创建、释放频繁造成系统资源的浪费从而影响系统性能sql语句在代…