基础-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 数据访问控制 GRANTREVOKE
DDL Data Definition Language 数据库结构定义 CREATEALTERDROP
DML Data Manipulation Language 数据操作 INSERTUPDATEDELETE
DQL Data Query Language 数据查询 SELECT
相关推荐
laocooon5238578862 小时前
Rust 编程语言教学目录
开发语言·后端·rust
小希smallxi2 小时前
Rust语言入门
开发语言·后端·rust
QT 小鲜肉2 小时前
【Linux命令大全】001.文件管理之mc命令(实操篇)
linux·运维·服务器·前端·笔记
手揽回忆怎么睡2 小时前
Streamlit学习笔记
笔记·学习
Rainly20002 小时前
工作日志之postgresql实现分布式锁
数据库·分布式·postgresql
悟能不能悟3 小时前
JAVA 对象转为二级制流,再转化为base64
java·开发语言
潲爺3 小时前
Java-IO笔记
java·笔记·学习
爬山算法3 小时前
Hibernate(6) Hibernate支持哪些数据库?
java·数据库·hibernate
进击的前栈3 小时前
Flutter跨平台网络图片缓存库cached_network_image鸿蒙化适配指导手册
开发语言·网络·rust