MYSQL-SQL-04-DCL(Data Control Language,数据控制语言)
DCL(数据控制语言)
- DCL英文全称是Data Control Language(数据控制语言),用来管理数据库用户、控制数据库的访问权限。
一、管理用户
1、查询用户
- 在MySQL数据库管理系统中,
mysql
是一个特殊的系统数据库名称,它并不是用户创建的普通数据库,而是MySQL安装时自动创建并包含一系列系统表和信息的数据库,它包含了MySQL服务器运行所需的系统表和元数据。
-- 这里的mysql是数据库名,是mysql自带的一个数据库名称,mysql下有一个user表,
-- user表存储了所有MySQL用户账户的信息,包括用户名、密码哈希、主机名、全局权限等
-- 但是不是所有用户都有权限查看这个user表的
select * from mysql.user;
不是所有用户都有权限查看这个user表的
,可以在root用户下执行该sql,root用户具有所有的权限。
- Host(主机名):指定了用户可以从哪个主机连接到 MySQL 服务器。
- localhost 表示用户只能从本地机器连接。
- 而 % 是一个通配符,表示用户可以从任何主机连接(这通常用于远程连接,但需要谨慎使用以避免安全风险)。
- User(用户名):代表的是访问该数据库的用户名。在MySQL中需要通过Host和User来唯一标识一个用户。
2、创建用户
- 语法:
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
- 实例:
-- 创建用户dadao, 只能够在当前主机localhost访问, 密码123456;
create user 'dadao'@'localhost' identified by '123456';-- 创建用户knife, 可以在任意主机访问该数据库, 密码123456;
create user 'knife'@'%' identified by '123456';
3、修改用户密码
- 语法:
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码' ;
- 实例:
-- 修改用户dadao的访问密码为1234;alter user 'heima'@'%' identified with mysql_native_password by '1234';
- 修改报错:
- 正确修改:
4、 删除用户
- 语法:
DROP USER '用户名'@'主机名' ;
- 实例:
-- 删除 dadao@localhost 用户drop user 'dadao'@'localhost';
注意事项:
在MySQL中需要通过'用户名'@'主机名'的方式,来唯一标识一个用户。
主机名可以使用 % 通配。
这类SQL开发人员操作的比较少,主要是DBA( Database Administrator 数据库管理员)使用。
二、控制权限
- mysql常用的权限(权限列表)
- 语法:
-- 查询权限SHOW GRANTS FOR '用户名'@'主机名' ;-- 授予权限GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';-- 撤销权限REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';
- 注意事项:
多个权限之间,使用逗号分隔
授权时, 数据库名和表名可以使用 * 进行通配,代表所有
- 实例:
-- 查询 'knife'@'%' 用户的权限show grants for 'knife'@'%';-- 授予 'knife'@'%' 用户company数据库所有表的所有操作权限grant all on company.* to 'knife'@'%';-- 撤销 'knife'@'%' 用户的company数据库的所有权限revoke all on company.* from 'knife'@'%';
1、查询权限
- 语法:
-- 查询权限SHOW GRANTS FOR '用户名'@'主机名' ;
- 实例:
-- 查询 'knife'@'%' 用户的权限show grants for 'knife'@'%';
-
查询用户knife的权限
-
GRANT USAGE ON . TO ‘knife’@'%'解释:
- GRANT 是授予权限的 SQL 命令。
- USAGE 是被授予的权限类型。(USAGE 是一种非常基础的权限,它实际上并不授予用户对数据库进行任何操作的能力)
- ON . 表示这个权限适用于所有数据库(第一个 *)和所有表(第二个 *)。
- TO ‘knife’@‘%’ 指定了权限被授予的用户,这里的用户是 knife,@‘%’ 表示该用户可以从任何主机连接到 MySQL 服务器。
-
root用户的权限
2、授予权限
- 语法:
-- 授予权限GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
- 实例:
-- 授予 'knife'@'%' 用户company数据库所有表的所有操作权限grant all on company.* to 'knife'@'%';
- 授予knife用户company所有表的所有权限
- 再次查看knife的权限
3、撤销权限
- 语法:
-- 撤销权限REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';
- 实例:
-- 撤销 'knife'@'%' 用户的company数据库的所有权限revoke all on company.* from 'knife'@'%';
- 撤销knife对company数据额权限
- 再查看knife的权限
相关文章:

MYSQL-SQL-04-DCL(Data Control Language,数据控制语言)
DCL(数据控制语言) DCL英文全称是Data Control Language(数据控制语言),用来管理数据库用户、控制数据库的访问权限。 一、管理用户 1、查询用户 在MySQL数据库管理系统中,mysql 是一个特殊的系统数据库名称,它并不…...

多线程进阶——线程池的实现
什么是池化技术 池化技术是一种资源管理策略,它通过重复利用已存在的资源来减少资源的消耗,从而提高系统的性能和效率。在计算机编程中,池化技术通常用于管理线程、连接、数据库连接等资源。 我们会将可能使用的资源预先创建好,…...

C++网络编程之C/S模型
C网络编程之C/S模型 引言 在网络编程中,C/S(Client/Server,客户端/服务器)模型是一种最基本且广泛应用的架构模式。这种模型将应用程序分为两个部分:服务器(Server)和客户端(Clien…...

目标检测:YOLOv11(Ultralytics)环境配置,适合0基础纯小白,超详细
目录 1.前言 2. 查看电脑状况 3. 安装所需软件 3.1 Anaconda3安装 3.2 Pycharm安装 4. 安装环境 4.1 安装cuda及cudnn 4.1.1 下载及安装cuda 4.1.2 cudnn安装 4.2 创建虚拟环境 4.3 安装GPU版本 4.3.1 安装pytorch(GPU版) 4.3.2 安装ultral…...

面试域——岗位职责以及工作流程
摘要 介绍互联网岗位的职责以及开发流程。在岗位职责方面,详细阐述了产品经理、前端开发工程师、后端开发工程师、测试工程师、运维工程师等的具体工作内容。产品经理负责需求收集、产品规划等;前端专注界面开发与交互;后端涉及系统架构与业…...
C#文件内容检索的功能
为了构建一个高效的文件内容检索系统,我们需要考虑更多的细节和实现策略。以下是对之前技术方案的扩展,以及一个更详细的C# demo示例,其中包含索引构建、多线程处理和文件监控的简化实现思路。 扩展后的技术方案 索引构建: 使用L…...

Redis-05 Redis发布订阅
Redis 的发布订阅(Pub/Sub)是一种消息通信模式,允许客户端订阅消息频道,以便在发布者向频道发送消息时接收消息。这种模式非常适合实现消息队列、聊天应用、实时通知等功能。 #了解即可,用的很少...

【读书笔记·VLSI电路设计方法解密】问题27:什么是可制造性设计
尽管业界尚未达成共识,但“可制造性设计”这一术语大致描述了旨在提高产品良率的特定分析、预防、纠正和验证工作。这不同于后GDSII阶段的分辨率增强技术,如光学邻近效应校正(OPC)和相位移掩膜(PSM)。“可制造性设计”中的关键词是“设计”,意指在设计阶段(而非设计完成…...

数据结构:堆的应用
堆排序 假定有一组数据极多的数,让我们进行排序,那我们很容易想到一种经典的排序方法,冒泡排序,我们对冒泡排序的时间复杂度进行分析: 显然,冒泡排序的时间复杂度是O(n^2),当数据量…...

Spring Boot 实现文件分片上传和下载
文章目录 一、原理分析1.1 文件分片1.2 断点续传和断点下载1.2 文件分片下载的 HTTP 参数 二、文件上传功能实现2.1 客户端(前端)2.2 服务端 三、文件下载功能实现3.1 客户端(前端)3.2 服务端 四、功能测试4.1 文件上传功能测试4.2 文件下载功能实现 参考资料 完整案例代码&…...

夹逼准则求数列极限(复习总结)
记住这两个准则,然后我们就开始看题目 因为是证明题,所以要放缩到什么值已经是确定的了。也就是放缩到0,然后很明显地可以看出前面已经有一个可以使得极限是0了,并且后面的值明显小于1,就是逐渐缩小的趋势,…...

【python】OpenCV—WaterShed Algorithm(1)
文章目录 1、功能描述2、代码实现3、完整代码4、效果展示5、涉及到的库函数5.1、cv2.pyrMeanShiftFiltering5.2、cv2.morphologyEx5.3、cv2.distanceTransform5.4、cv2.normalize5.5、cv2.watershed 6、参考 1、功能描述 基于分水岭算法对图片进行分割 分水岭分割算法&#x…...

查找与排序-插入排序
思考:在把待排序的元素插入已经有序的子序列中时,是不是一定要逐一比较?有没有改进方法? 在查找插入位置的时候可以采用折半(二分)搜索的办法。 一、折半插入排序 1.折半插入排序算法的基本思想 假设待…...

JAVA基础:多线程 (学习笔记)
多线程 一,什么是线程? 程序:为完成特定任务、用某种语言编写的一组指令的集合,是一段静态的代码进程:程序的一次执行过程。 正在运行的一个程序,进程作为资源分配的单位,在内存中会为每个进程分配不同的…...

盲盒小程序/APP系统,市场发展下的新机遇
当下,年轻人热衷于各种潮玩商品,尤其是一盲盒为主的潮流玩具风靡市场,吸引了众多入局者。随着互联网信息技术的快速发展,各类线上盲盒小程序又进一步推动了盲盒市场的发展,成为年轻人拆盲盒的主要阵地。在盲盒经济中&a…...
Unity3D LayoutGroup组件详解
Unity3D中的LayoutGroup组件是一种强大的工具,用于动态调整UI元素的布局。它主要包括三种类型:Horizontal Layout Group(水平布局组)、Vertical Layout Group(垂直布局组)和Grid Layout Group(网…...
[NeetCode 150] Foreign Dictionary
Foreign Dictionary There is a foreign language which uses the latin alphabet, but the order among letters is not “a”, “b”, “c” … “z” as in English. You receive a list of non-empty strings words from the dictionary, where the words are sorted lex…...

小新学习K8s第一天之K8s基础概念
目录 一、Kubernetes(K8s)概述 1.1、什么是K8s 1.2、K8s的作用 1.3、K8s的功能 二、K8s的特性 2.1、弹性伸缩 2.2、自我修复 2.3、服务发现和负载均衡 2.4、自动发布(默认滚动发布模式)和回滚 2.5、集中化配置管理和密钥…...

如何用终端批量修改一个文件夹里面所有图片的后缀名?
步骤: winr ,然后输入cmd,打开终端 使用cd命令导航到要修改图片后缀名的文件夹。eg.我的该文件夹(C:\dog)下,保存的图片。(cd和文件目录之间要有空格)批量改变后缀名,假如让后缀名全部要从 ".webp&q…...
关于AI网络架构的文章
思科OCP anounce了800G 51.2T G200-based minipack3 switch。对比之前Tesla anounce的TTPoE。真的很好奇,谁是AI-networking的未来,以及思科是否走在正确的路上,以及S1背后的技术。 大致浏览了相关的文章,先mark住,回…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...

51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...

大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...

k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...

IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...

接口自动化测试:HttpRunner基础
相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型…...