当前位置: 首页 > news >正文

MySQL——数据库的高级操作(三)权限管理(4)收回权限

        在 MySQL中,为了保证数据库的安全性,需要将用户不必要的权限收回,例如,数据管理员发现某个用户不应该具有 DELETE 权限,就应该及时将其收回。为了实现这种功能,MySQL提供一个 REVOKE 语句,该语句可以收回用户的权限。

        REVOKE的语法格式如下:

REVOKE privileges [columns][,privileges[(columns)]] ON database.table FROM 'username'@ hostname'[,'username'@'hostname']...

        REVOKE 语法格式中的参数与GRANT语句中的参数意思相同,privileges 参数表示收回的权限,columns 表示权限作用于哪列上,如果不指定该参数表示作用于整个表。使用 REVOKE 语句收回 user4 用户的 INSERT 权限,REVOKE 语句如下:

REVOKE INSERT ON *.* FROM "user4'@'localhost';

        上述语句执行成功后,可以使用 SELECT 语句来查询 user 表中的用户信息,查询结果如下:

mysql> SELECT Host,User,Password,Insert_priv FROM mysql.user WHERE user='user4'\G
*************************** 1. row ***************************Host: localhostUser: user4Password: *23AE809DDACAF96AF0FD78ED04B6A265E05AA257
Insert priv: N
l row in set (0.02 sec)

        从上述结果可以看出,Insert_priv 的权限值已经被修改为 N,因此可以说明REVOKE 语句将 user4 的 INSERT 权限收回了。

        如果用户的权限比较多,想一次性将其收回,使用上述语句就会比较麻烦,为此,REVOKE语句还提供了收回所有权限的功能。REVOKE语句收回全部权限的语法格式如下:

REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'username'@ 'hostname'[,'username'@'hostname']...

        使用 REVOKE 语句收回 user4 的所有权限,REVOKE 语句如下:

REVOKE ALL PRIVILEGES,GRANT OPTION FROM 'user4'@'localhost';

        上述语句执行成功后,可以使用 SELECT 语句来查询 user 表中的用户信息,查询结果如下:

mysql> SELECT Host,User,Password,Insert_priv,Select_priv,Grant_priv from mysql.user where user='user4'\G
*************************** 1. row ***************************Host: localhostUser: user4Password: *23AE809DDACAF96AF0FD78ED04B6A265E05AA257
Insert priv: N
Select priv:NGrant priv: N
1 row in set (0.00 sec)

        从上述结果可以看出,user4 用户的 INSERT、SELECT、GRANT 权限都被收回了。
 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • JUC学习笔记(一)
  • android 老项目中用到的jar包不存在,通过离线的方法加载
  • 【C/C++】程序的构建(编译)过程概述
  • PyAutoGUI:自动化操作的强大工具
  • 【Android Studio】app:compileDebugJavaWithJavac FAILED解决办法
  • c++类型转换
  • GoPlantUML,go代码到类图
  • 33.递归、搜索、回溯之记忆化搜索
  • 2024 年最佳 Chrome 验证码扩展,解决 reCAPTCHA 问题
  • 秋招突击——9/10、9\11——算法练习——携程笔试练习——2024年秋招第一批笔试
  • MYSQL数据库——MYSQL管理
  • 鸿蒙开发入门day19-使用NDK接口构建UI(二)
  • qt使用对数坐标的例子,qchart用QLogValueAxis坐标不出图解决
  • 第J3-1周:DenseNet算法 实现乳腺癌识别(pytorch)
  • 【Echarts】vue3打开echarts的正确方式
  • JavaScript 如何正确处理 Unicode 编码问题!
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • github指令
  • gops —— Go 程序诊断分析工具
  • Java,console输出实时的转向GUI textbox
  • Js基础知识(四) - js运行原理与机制
  • js面向对象
  • JS学习笔记——闭包
  • js中forEach回调同异步问题
  • Mysql5.6主从复制
  • MySQL用户中的%到底包不包括localhost?
  • oldjun 检测网站的经验
  • orm2 中文文档 3.1 模型属性
  • spring-boot List转Page
  • Sublime Text 2/3 绑定Eclipse快捷键
  • Vue 2.3、2.4 知识点小结
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 闭包,sync使用细节
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 关于 Cirru Editor 存储格式
  • 诡异!React stopPropagation失灵
  • 解析 Webpack中import、require、按需加载的执行过程
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 漂亮刷新控件-iOS
  • 前端攻城师
  • 微服务核心架构梳理
  • 问题之ssh中Host key verification failed的解决
  • 仓管云——企业云erp功能有哪些?
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​你们这样子,耽误我的工作进度怎么办?
  • ![CDATA[ ]] 是什么东东
  • (1)无线电失控保护(二)
  • (2)STM32单片机上位机
  • (2024,Flag-DiT,文本引导的多模态生成,SR,统一的标记化,RoPE、RMSNorm 和流匹配)Lumina-T2X
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (SpringBoot)第二章:Spring创建和使用
  • (附源码)python旅游推荐系统 毕业设计 250623