我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL show fileds from 提示无权限的示例分析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL show fileds from 提示无权限的示例分析

MySQL show fileds from 提示无权限的示例分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。


背景:
MySQL-5.7.12, 开发用的环境出现show fields的报错;

场景:
业务方反馈在执行show fields的命令时报错了,
在测试环境构造了报错的场景, 实际报错内容类似于:

点击(此处)折叠或打开

  1. ERROR 1143 (42000): SELECT command denied to user ''@'%' for column 'role_id' in table 'xxxxx'


直观上看, 很容易就能发现是权限的问题,
不过有一个疑点:
报错内容的用户那一栏显示为空;

分析:
首先能肯定的是这是由权限引起的, 错误信息中很明显;
第二点就是用户栏显示为空, 这个有可能是指用户不存在, 也有可能是有关联的用户信息存在一些问题,导致无法显示;

排查:
1.排查登录用户的权限, 登录到线上环境, 发现业务账号确实会报错, 然后换成root账号也是一样......
MySQL show fileds from 提示无权限的示例分析
而业务账号是有view对应db, 以及view 的select中对应db的ALL权限的, 何况root也不行, 说明这个权限相关的报错, 并不是由登录用户引起的;

2.既然不是登录用户的权限问题, 那么就看看视图本身的权限;

------------------------------------------------------------------------------------------------------------------------------------------------------------------
相关资料:
MySQL-5.7中, 视图的权限控制是由视图创建时自行指定的, 如测试环境中, 有问题的视图的创建语句:

点击(此处)折叠或打开

  1. CREATE ALGORITHM=UNDEFINED DEFINER=`test`@`%` SQL SECURITY DEFINER VIEW test_view_xxx_roles AS select xxx;

红色部分:
定义了这个view的创建者(定义者), 代表了这个view在创建时用到的权限是`test`@`%`提供的;

绿色部分:
定义了这个view在访问的时候, 校验权限时, 检查哪个用户, DEFINER或者是INVOKER;

------------------------------------------------------------------------------------------------------------------------------------------------------------------

从相关资料可以了解到, show fields from view_stack会报无权限的错误, 就是因为根据SQL SECURITY去校验用户的权限时, 发现权限没了;
从view的内容来看, 只需要对应库的select权限就好了, 那么看看现在库中, 创建这个view的test用户的权限:
MySQL show fileds from 提示无权限的示例分析

是的, 真的没有看错, 开发用的环境里面, 这个view对应的用户已经没了....._(:з」∠)_

那么创建这个用户以后, 看看是不是就不会报错了:
MySQL show fileds from 提示无权限的示例分析

果然, 只要加上这个definer就不会再报错了;

处理方式:
最终的处理方式是修改了相关view的definer用户(需要super权限才能修改view的这个字段);


重要的额外信息:
比较奇怪的是这个现象无法在"干净
"的库里面复现, 只有把开发环境的数据库导入到测试环境才会出现这个问题, 可能有一些其他的因素影响到了mysql的处理逻辑;

关于MySQL show fileds from 提示无权限的示例分析问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL show fileds from 提示无权限的示例分析

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

APP获取权限的示例分析

这期内容当中小编将会给大家带来有关APP获取权限的示例分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。现在21世纪是大数据的时代,也是科技高速发展的时代。人们只要使用自己的个人信息,即可以登录手机APP
2023-06-04

Linux文件权限的示例分析

这篇文章主要介绍了Linux文件权限的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何
2023-06-27

Linux中文件权限目录权限的示例分析

这篇文章主要介绍Linux中文件权限目录权限的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!linux中目录与文件权限的意义一、文件权限的意义r:可以读这个文件的具体内容;w:可以编辑这个文件的内容,包括增加
2023-06-09

Java中无权无向图的示例分析

这篇文章主要介绍了Java中无权无向图的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、图的定义我们知道,前面讨论的数据结构都有一个框架,而这个框架是由相应的算法实
2023-06-28

Linux中进程权限的示例分析

这篇文章主要介绍Linux中进程权限的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Linux 进程权限分析在linux下,关于文件权限,大部分人接触比较多,也比较熟悉了解.但是对进程权限一般知之甚少。本文总
2023-06-09

C++中访问权限的示例分析

这篇文章主要为大家展示了“C++中访问权限的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C++中访问权限的示例分析”这篇文章吧。众所周知,C++面向对象的三大特性为:封装,继承和多态。
2023-06-20

编程热搜

目录