MySQL数据库 10.DCL操作

news/2023/9/27 6:00:59

目录

🤔 前言:

🤔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数据库的一切权限都被撤销。

🤔结束!


https://dhexx.cn/news/show-4633611.html

相关文章

【Mysql】 表的增删查改

文章目录 【Mysql】表的增删查改Create --创建数据Retireve -- 读取数据select 列where条件order by -- 结果排序limit -- 分页 Update -- 更新数据Delete -- 删除数据deletetruncate -- 截断表 插入查询结果聚合函数group by 子句 【Mysql】表的增删查改 CRUD : Create(创建)…

【Linux】Linux内核编译与入门

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍Linux内核编译。 学其所用,用其所学。——梁启超 欢迎来到我的博客,一起学习知识,共同进步。 喜欢的朋友可以关注一下,下次更新不迷路&am…

【微服务项目】Spring Cloud Alibaba 实战

Spring Cloud Alibaba 实战 一、目标 理解什么是微服务架构理解什么是springcloud及spring cloud alibaba和springcloud的关系掌握使用springcloud alibaba 实现微服务远程调用掌握使用springcloud alibaba 实现服务注册与发现掌握使用springcloud alibaba 实现基本的服务配置…

基于geoserver开发地图发布服务

写在前面:我在github上创建了对应的项目,可点此跳转,本文的所有源码均可在项目里找到,欢迎大家访问交流 一、开发背景 在gis领域,geoserver是后端地图发布的开源项目。目前我们在启动服务后,可通过自带的…

SpringBoot自定义starter之接口日志输出

文章目录 前言文章主体1 项目全部源码2 项目结构介绍3 starter 的使用3.1 配置文件 application,yml的内容3.2 启动类3.3 控制器类 4 测试结果 结语 前言 本文灵感来源是一道面试题。 要求做一个可以复用的接口日志输出工具,在使用时引入依赖,即可使用。…

进出口跨境电商软件平台系统开发,源码技术架构

一、进出口跨境电商软件平台系统开发需做好相应的前期准备,如确定市场、了解政策、推广宣传等。 欢迎名片沟通探讨 确定目标市场:选择合适的目标市场。需要了解目标市场的消费习惯、政策法规以及竞争情况。 了解海关相关政策:针对不同国家或…

R语言 tidyverse系列学习笔记(系列3)具体任务的处理(成绩单为例)

score成绩单 install.packages("dplyr") library(dplyr)install.packages("tibble") library(tibble)install.packages("stringr") library(stringr)score tibble(IDc("1222-1","2001-0","3321-1","4898-0…

工业相机分类、相关参数含义

一、工业相机参数 1、分辨率 分辨率是相机最基本的参数,由相机所采用的芯片分辨率决定,在采集图像时,相机的分辨率对检测精度有很大的影响,在对同样大的视场(景物范围)成像时,分辨率越高&…

带你学透SQL语言的核心——DML操作

0️⃣写在前面 DML(Data Manipulation Language)是SQL语言的核心部分,其主要用于对数据库的数据进行增删改查。在学习数据时,学习DML操作是必不可少的一部分。 文章目录 0️⃣写在前面1️⃣添加数据2️⃣修改数据3️⃣删除数据4️…

银行业务相关

省联社,农商行、农村信用社之间的关系 一些知乎回答 省联社、农商行、农村信用社之间有什么联系? - mobye的回答 - 知乎 https://www.zhihu.com/question/24220844/answer/28276903 发源于空想社会主义,世界上第一个信用合作社诞生于1984年的…