SQL语言的四大组成部分——DCL(数据控制语言)
1️⃣前言
SQL语言中的DCL(Data Control Language)是一组用于控制数据库用户访问权限的语言,主要包括GRANT、REVOKE、DENY等关键字。

文章目录
- 1️⃣前言
- 2️⃣DCL语言
- 3️⃣GRANT关键字
- 4️⃣REVOKE关键字
- 5️⃣DENY关键字
- 6️⃣总结
- 附:好书推荐
2️⃣DCL语言
在SQL语言中,DCL(数据控制语言)与DML(数据操作语言)、DQL(数据查询语言) 和DDL(数据定义语言) 一样,是SQL语言的四大基本组成部分。

DCL语言可以通过GRANT和REVOKE两个关键字控制用户对数据库对象的访问权限,例如授予用户SELECT、INSERT、UPDATE、DELETE等权限,或者撤销用户对数据库对象的权限。
在MySQL中 用户的信息和具有的权限的信息 都是存放在系统数据库mysql中的user表中。
3️⃣GRANT关键字
GRANT用于授权给用户或用户组访问数据库对象的权限。 GRANT语句的语法如下:
GRANT permission ON object TO user;
其中,permission表示授权的权限,可以是SELECT、INSERT、UPDATE、DELETE等;object表示授权的数据库对象,可以是表、视图、存储过程等;user表示被授权的用户或用户组。
以下是GRANT关键字的详细使用示例:
- 授权用户SELECT权限:
GRANT SELECT ON table_name TO user_name;
说明:授权用户user_name对表table_name进行SELECT操作。
- 授权用户INSERT、UPDATE、DELETE权限:
GRANT INSERT, UPDATE, DELETE ON table_name TO user_name;
说明:授权用户user_name对表table_name进行INSERT、UPDATE、DELETE操作。
- 授权用户所有权限:
GRANT ALL PRIVILEGES ON table_name TO user_name;
说明:授权用户user_name对表table_name进行所有操作。
- 授权角色所有权限:
GRANT ALL PRIVILEGES ON table_name TO role_name;
GRANT role_name TO user_name;
说明:授权角色role_name对表table_name进行所有操作,并将该角色授权给用户user_name。
4️⃣REVOKE关键字
REVOKE用于撤销用户或用户组访问数据库对象的权限。 REVOKE语句的语法如下:
REVOKE permission ON object FROM user;
其中,permission表示要撤销的权限,可以是SELECT、INSERT、UPDATE、DELETE等;object表示要撤销权限的数据库对象,可以是表、视图、存储过程等;user表示被撤销权限的用户或用户组。
以下是REVOKE关键字的详细使用示例:
- 撤销用户SELECT权限:
REVOKE SELECT ON table_name FROM user_name;
说明:撤销用户user_name对表table_name的SELECT操作。
- 撤销用户INSERT、UPDATE、DELETE权限:
REVOKE INSERT, UPDATE, DELETE ON table_name FROM user_name;
说明:撤销用户user_name对表table_name的INSERT、UPDATE、DELETE操作。
- 撤销用户所有权限:
REVOKE ALL PRIVILEGES ON table_name FROM user_name;
说明:撤销用户user_name对表table_name的所有操作。
- 撤销角色所有权限:
REVOKE ALL PRIVILEGES ON table_name FROM role_name;
REVOKE role_name FROM user_name;
说明:撤销角色role_name对表table_name的所有操作,并将该角色从用户user_name中撤销。
5️⃣DENY关键字
DENY关键字用于限制用户或角色对某些数据库对象的访问权限,语法如下:
DENY permission [, permission] ON object TO {user | role | PUBLIC} [, {user | role | PUBLIC}] [WITH GRANT OPTION]
具体来说,它可以阻止用户或角色对某个表、视图、存储过程等对象的SELECT、INSERT、UPDATE、DELETE等操作。
其中,permission表示要限制的权限,可以是SELECT、INSERT、UPDATE、DELETE等;object表示要限制访问的对象,可以是表、视图、存储过程等;user或role表示要限制的用户或角色,PUBLIC表示所有用户或角色;WITH GRANT OPTION表示允许被授权的用户或角色再次授权。
下面是一个具体的代码示例,用于禁止用户Alice对表employee的SELECT和UPDATE操作:
DENY SELECT, UPDATE ON employee TO Alice
这样,当Alice尝试对employee表进行SELECT或UPDATE操作时,将会被拒绝访问。如果需要允许其他用户或角色对该表进行操作,可以使用GRANT语句进行授权。

6️⃣总结
DCL语言是SQL语言中非常重要的一个部分,它可以帮助数据库管理员控制用户对数据库的访问权限,保证数据库中数据的安全性和完整性。
附:好书推荐

《Python大学教程:面向计算机科学和数据科学》
通过本书,你将学习:
· 538个案例研究,471个习题和项目,557道自检习题。
· 基于IPython和Jupyter Notebook的即时反馈。
· 问题求解、算法开发、控制语句、函数等基础知识。
· 列表、元组、字典、集合、Numpy数组、pandas Series和DataFrame。
· 2D/3D的静态、动态和交互式可视化。
· 字符串、文本文件、JSON序列化、CSV、异常。
· 过程式、函数式和面向对象的程序设计方法。
· “数据科学入门”:基础统计、模拟、动画、随机变量、数据整理、回归。
· 隐私、安全、伦理、可重现、透明。
· AI、大数据和云数据科学案例研究:NLP、Twitter数据挖掘、IBM Watson、机器学习、深度学习、计算机视觉、Hadoop、Spark、NoSQL、IoT。
· 开源库:NumPy、pandas、Matplotlib、Seaborn、Folium、SciPy、NLTK、TextBlob、 spaCy、Textatistic、Tweepy、Scikit-learn、Keras、PubNub等。
了解更多秒杀神书 点击此处 了解!

相关文章:
SQL语言的四大组成部分——DCL(数据控制语言)
1️⃣前言 SQL语言中的DCL(Data Control Language)是一组用于控制数据库用户访问权限的语言,主要包括GRANT、REVOKE、DENY等关键字。 文章目录 1️⃣前言2️⃣DCL语言3️⃣GRANT关键字4️⃣REVOKE关键字5️⃣DENY关键字6️⃣总结附࿱…...
ChatGPT新功能曝光:可记住用户信息、上传文件和工作区
🦉 AI新闻 🚀 ChatGPT新功能曝光:可记住用户信息、上传文件和工作区 摘要:一张神秘截图曝光了ChatGPT新功能,包括可记住用户信息的"My profile"、上传和管理文件的"My files"以及可以让AI使用不…...
【Unity编辑器扩展】(三)PSD转UGUI Prefab, 一键拼UI解放美术/程序(完结)
工具效果: 第一步,把psd图层转换为可编辑的节点树,并自动解析UI类型、自动绑定UI子元素: 第二步, 点击“生成UIForm"按钮生成UI预制体 (若有UI类型遗漏可在下拉菜单手动点选UI类型): 验证一键生成UI效果: 书接上…...
SpringBoot开发Restful风格的接口实现CRUD功能
基于SpringBoot开发一个Restful接口 前言一、什么是SpringBoot?二、实战---基于SpringBoot开发一个Restful接口1.开发前的准备工作1.1 添加相关依赖 (pom文件) 1.2 创建相关数据库和表1.3 数据库配置文件 2.实战开发---代码逻辑2.1 实体类2.2…...
【Servlet学习三】实现一个内存版本的简易计算器~
目录 一、方式1:使用form表单的形式(不推荐) 🌈1、前端代码:HTML文件 🌈2、后端代码:Calculator_form.java文件 🌈3、最终效果 二、方式2:使用ajax形式(…...
Linux c语言获取本机网关 ip 地址
文章目录 前言一、获取本机网关 ip 地址1.1 代码示例1.2 代码详解介绍 二、使用Netlink套接字实时监控网络事件2.1 简介2.2 示例代码 前言 这篇文章写了获取本机的ip地址和子网掩码:Linux c语言获取本机 ip、子网掩码 一、获取本机网关 ip 地址 使用Netlink套接字…...
nginx部署本地项目如何让异地公网访问?服务器端口映射配置!
接触过IIS或apache的小伙伴们,对nginx是比较容易理解的,nginx有点类似,又有所差异,在选择使用时根据自己本地应用场景来部署使用即可。通过一些对比可能会更加清楚了解: 1.nginx是轻量级,比apache占用更少…...
云时代已至,新一代数据分析平台是如何实现的?
2023 年 5 月,由 Stackoverflow 发起的 2023 年度开发者调查数据显示,PostgreSQL 已经超越 MySQL 位居第一,成为开发人员首选。PostgreSQL 在国内的热度也越来越高。6 月 17 日,PostgreSQL 数据库技术峰会在成都顺利召开。本次大会…...
【C#】简单聊下Framework框架下的事务
框架用的多了,之前版本的事务都忘记了。本次简单聊下.net framework 4.8框架下本身的事务 目录 1、SqlClient2、TransactionScope3、引用 1、SqlClient 在 C# 中,使用 using 块可以方便地实现对资源的自动释放,但它不适用于实现事务处理。为…...
asyncPool并发执行请求函数
asyncPool应用场景 一个不太常见的极端场景,当我们为了某个操作需要发生异步请求的时候,等待所有异步请求都完成时进行某些操作。这个时候我们不在简简单单的发送 1 - 2 个请求而是 5 - 10个(其实极端场景式 很多很多个请求,这个…...
Ubuntu 22.04上安装NFS服务
1、使用如下命令安装NFS服务端软件: # 在主机上运行以下命令 orangepiorangepi5:~$ sudo apt install nfs-server 2、在配置NFS时需要使用用户uid和组gid,可以使用id命令查看 # 在主机上运行id命令 orangepiorangepi5:~$ id uid1000(orangepi) gid100…...
数据结构--双链表
数据结构–双链表 单链表 VS 双链表 单链表:无法逆向检索,有时候不太方便 双链表:可进可退,存储密度更低一丢丢 双链表的定义 typedef struct DNode {ElemType data;struct DNode *prior, *next; }DNode, *DLinkList;双链表的初…...
javassist 动态修改 jar 包中 class
Javassist(Java Programming Assistant)是一个用于在运行时操作字节码的库,它可以用于动态修改和操作Java类。使用Javassist,可以通过修改现有的类或创建新的类来实现动态修改Jar包中的类。 下面是一个简单的示例,展示…...
什么是CC攻击?
CC攻击:DDOS(分布式拒绝服务攻击)的一种。黑客利用代理服务器或者控制的肉鸡,向目标web网页发送大量的请求,致使CPU处理不过来这么多的请求,长期处于100%的状态。造成通过该页面访问的端口堵塞,正常请求进不来。 怎么…...
LeetCode解法汇总253. 重构 2 行二进制矩阵
目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣 描述: 给你一个 2 行 n 列的二进制数组: 矩阵是一个二进制矩阵࿰…...
ChatGPT实战:生成演讲稿
当众发言(演讲)是一种传达信息、观点和情感的重要方式。通过演讲,人们可以在公共场合表达自己的观点,向观众传递自己的知识和经验,激发听众的思考和行动。无论是商务演讲、学术讲座还是政治演说,演讲稿的写…...
在线搭建K8S,kubernetes集群v1.23.9,docker支持的最后一个版本
1. 部署环境主机(条件说明) master 192.168.186.128 CentOS Linux release 7.9.2009 (Core) node1 192.168.186.129 CentOS Linux release 7.9.2009 (Core) node2 192.168.186.130 CentOS Linux release 7.9.2009 (Core)2. 系统初始化-所有节点&am…...
http自动跳转https的配置方法
要将HTTP自动重定向到HTTPS,您需要在Web服务器上进行以下配置: 在Web服务器上安装SSL证书。 打开Web服务器配置文件(如Apache的httpd.conf或Nginx的nginx.conf)。 找到监听HTTP请求的端口(通常是80端口)。…...
重新初始化k8s集群
执行如下命令,所有节点都执行 kubeadm reset初始化集群,仅在master(centos01)上执行 [rootcentos01 opt]# kubeadm init --apiserver-advertise-address 192.168.109.130 --image-repository registry.aliyuncs.com/google_containers --kubernetes-ve…...
JetBrains编程IDE将具备Ai助手功能,或将提高开发速度
近日JetBrains发布博客文章宣布,本周所有基于IntelliJ的IDE和.NET工具的EAP版本都将具备AI助手功能。而这些操作或许将提高开发效率,并且这些AI助手也是使用自家的**ERP**模型和OpenAI服务。 JetBrains表示,当下AI助手功能主要体现在IDE的两…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...
Windows安装Miniconda
一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...
【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验
Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...

