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

深入解析 MySQL 中的 SHOW_ROUTINE 权限

目录

前言

权限作用

授权方法

MySQL8.0.20以上

MySQL8.0.20以下

总结


前言

`SHOW_ROUTINE` 是 MySQL 中用于控制用户查看存储过程和函数定义的权限。拥有该权限的用户可以通过 `SHOW CREATE PROCEDURE` 和 `SHOW CREATE FUNCTION` 等语句查看存储过程和函数的详细定义,以及访问 `INFORMATION_SCHEMA.ROUTINES` 表中的相关信息。

此权限通常需要通过 `GRANT` 语句授予用户,且默认为全局权限,不能限制到特定数据库。

它在 MySQL 8.0.20 版本中被引入,旨在提供一种更精细的权限管理方式,允许用户查看存储过程和函数的定义,而无需授予广泛的全局 `SELECT` 权限,从而增强了数据库的安全性和灵活性。

MySQL官网文档:http://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-20.html

权限作用

查看存储过程和函数的定义:拥有 SHOW_ROUTINE 权限的用户可以通过以下语句查看存储过程和函数的定义:

SHOW CREATE PROCEDURE procedure_name;
SHOW CREATE FUNCTION function_name;

访问存储过程和函数的属性:该权限允许用户访问存储过程和函数的相关属性,包括:

  • INFORMATION_SCHEMA.ROUTINES 表的内容。
  • SHOW FUNCTION STATUSSHOW PROCEDURE STATUS 语句。
  • SHOW FUNCTION CODESHOW PROCEDURE CODE 语句。

授权方法

MySQL8.0.20以上

授予全局权限:可以使用以下语句授予用户全局的 SHOW_ROUTINE 权限:

GRANT SHOW_ROUTINE ON *.* TO 'username'@'host';

其中,*.* 表示全局范围,'username'@'host' 是指定的用户和主机。

注意事项:MySQL版本必须大于8.0.20

注意事项:SHOW_ROUTINE 是一个全局权限,不能在库级别授予,否则会报错。

MySQL8.0.20以下

MySQL8.0.20以下的版本查看存储过程和函数定义则需要有全局select的权限

GRANT SELECT ON *.* TO 'username'@'host';

总结

与全局 SELECT 权限的关系:在 MySQL 8.0.20 之前,用户需要拥有全局 SELECT 权限才能查看未定义的存储过程和函数的定义。

从 8.0.20 开始,SHOW_ROUTINE 权限提供了一种更受限制的权限,允许用户访问存储过程和函数的定义,而无需广泛的全局 SELECT 权限。

适用范围SHOW_ROUTINE 权限允许用户访问所有存储过程和函数的定义和属性,即使用户未被命名为存储过程或函数的 DEFINER

通过合理授予和管理 SHOW_ROUTINE 权限,可以更好地控制用户对存储过程和函数的访问权限,从而增强数据库的安全性和管理灵活性。

http://www.lryc.cn/news/2385827.html

相关文章:

  • 电脑网络如何改ip地址?ip地址改不了怎么回事
  • 打开小程序提示请求失败(小程序页面空白)
  • C语言速成12之指针:程序如何在内存迷宫里找宝藏?
  • 一张纸决定的高度
  • IP查询基础介绍
  • 常见的gittee开源项目推荐
  • 日常效率工具【Tools】【持续更新】
  • PyTorch中TensorBoardX模块与torch.utils.tensorboard模块的对比分析
  • 数据结构与算法——链式二叉树
  • Android12 launcher3修改App图标白边问题
  • 【iOS】分类、扩展、关联对象
  • 内蒙古工程系列建设工程技术人才评审条件
  • Elasticsearch超详细安装部署教程(Windows Linux双系统)
  • 第十六章:数据治理之数据架构:数据模型和数据流转关系
  • 目标检测DINO-DETR(2023)详细解读
  • 基于 STM32 的蔬菜智能育苗系统硬件与软件设计
  • 实现一个带有授权码和使用时间限制的Spring Boot项目
  • SGlang 推理模型优化(PD架构分离)
  • TuyaOpen横空出世!涂鸦智能如何用开源框架重构AIoT开发范式?
  • Vue语法【2】
  • 2.2.1 05年T2
  • 每日c/c++题 备战蓝桥杯(修理牛棚 Barn Repair)
  • 6个月Python学习计划 Day 3
  • Linux虚拟文件系统(2)
  • 【数据结构】栈和队列(上)
  • 科技赋能·长效治理|无忧树建筑修缮渗漏水长效治理交流会圆满举行!
  • 【闲聊篇】java好丰富!
  • STL中list的模拟
  • 6.3.2图的深度优先遍历
  • 畅游Diffusion数字人(30):情绪化数字人视频生成