基础-SQL-DCL

一、MySQL基础

在数据库的世界里,DCL(Data Control Language,数据控制语言)是守护数据安全的"隐形卫士"。它不直接操作数据,却决定着谁能在何时、以何种方式访问数据库。

1. DCL

DCL是SQL的子集,专注于数据库访问权限的控制。它确保只有经过授权的用户才能执行特定操作,是数据库安全体系的基石。

💡 关键认知:DCL不是"数据操作语言",而是"数据访问控制语言"。它不处理数据本身,而是控制"谁可以操作数据"。

1.1 DCL的核心使命:安全与权限

DCL的四大核心使命:

  1. 授权:指定用户可以执行的操作(如SELECT、INSERT)
  2. 撤销:收回已授予的权限
  3. 角色管理:将权限组合成角色,简化管理
  4. 审计:记录用户操作,便于追踪和安全审查

🌟 现实场景:想象一家电商公司,销售团队需要查看订单数据,但不能修改;财务团队需要修改订单状态,但不能查看客户信息。DCL正是实现这种精细权限控制的关键。

1. 查询用户

默认有四个用户,其他没有用过,只有一个你刚开始创建数据库项目时使用的账号比如root。

localhost指的是:主机。我们要去创建一个用户和删除一个用户,需要通过用户名和host主机地址同时定位。这个主机指的是当前这个用户只能够在哪一个主机上访问当前的MySQL服务器。那么localhost代表了只能在本机访问,不能远程访问。

2. 创建用户

通过sql创建用户会发现是没有任何权限的,可以访问MySQL但是没有访问其他数据库的权限

  1. 修改用户名

权限控制

常用的权限设置

sql 复制代码
-- 查询权限
-- GRANT USAGE ON *.* TO `huama`@`%`
-- 查询到上面的权限说明:你仅仅只能通过该用户连接并登入mysql而已
show grants for 'huama'@'%';

-- 授予权限
-- GRANT ALL PRIVILEGES ON `tables`.* TO `huama`@`%`
-- 这样就将tables的所有权限授权给了该用户
grant all on tables.* to 'huama'@'%';

-- 撤销权限
revoke all on tables.* from 'huama'@'%';
语言 全称 核心功能 关键操作
DCL Data Control Language 数据访问控制 GRANT、REVOKE
DDL Data Definition Language 数据库结构定义 CREATE、ALTER、DROP
DML Data Manipulation Language 数据操作 INSERT、UPDATE、DELETE
DQL Data Query Language 数据查询 SELECT
相关推荐
Hello.Reader1 分钟前
Three.js / Cesium 卡顿怎么办?把三维渲染搬到 GPU 服务器
服务器·开发语言·javascript
Linux_cy3 分钟前
nginx 502 排查手册:九种原因分类、定位命令与检查顺序
linux·运维·服务器·网络·数据库·nginx·ssh
在多学一点5 分钟前
MySQL_DDL的基本命令
数据库·mysql·adb
云析赢指标公式网46 分钟前
通达信ATAN均线角度公式源码笔记:四周期角度计算与DRAWBAND色带实现
笔记·算法
Solange__8 分钟前
AI世界模型、3D场景生成和游戏引擎怎么选?按5类任务比较交互、物理与导出
开发语言·人工智能·游戏·平面·3d·自然语言处理·游戏引擎
椒颜皮皮虾྅15 分钟前
模型部署不再卡在环境上:DeploySharp 四大推理引擎与 Windows/Linux 离线交付实战
linux·运维·开发语言·人工智能·windows·计算机视觉·cuda
蒸蒸yyyyzwd19 分钟前
学习笔记day92
笔记·八股
96245625 分钟前
补打一条卡,为什么要从前一天重新算:人工补录与实时重算业务复盘
java·mysql·kafka
codebolt28 分钟前
C++程序crash分析和内存检测
开发语言·c++
椒颜皮皮虾྅28 分钟前
让 C# 读懂整张图:DeploySharp 驱动 PaddleOCR v4/v5/v6,打通 OCR 全流程
开发语言·人工智能·深度学习·学习·c#·ocr·cuda