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住,回…...
wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...
深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
return this;返回的是谁
一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请,不同级别的经理有不同的审批权限: // 抽象处理者:审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...
云原生安全实战:API网关Kong的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关(API Gateway) API网关是微服务架构中的核心组件,负责统一管理所有API的流量入口。它像一座…...
[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #:…...
LOOI机器人的技术实现解析:从手势识别到边缘检测
LOOI机器人作为一款创新的AI硬件产品,通过将智能手机转变为具有情感交互能力的桌面机器人,展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家,我将全面解析LOOI的技术实现架构,特别是其手势识别、物体识别和环境…...
