Mysql视图权限设置的踩坑经历

1.事件背景
今天临近中午饭点时,开发同事发来需求,在mariadb库创建两个视图,要求指定帐号有只读权限。
很简单的需求,连上服务器,两条grant命令一刷,fulsh privileges 回车,楼主就安心吃饭去了。

2.重点来了,待楼主用餐归来,(还在楼下打了盘王者农药,排位两连跪(┬_┬)),
上午发来需求的同事找我了。

3.柳暗花明
瞬间蒙圈的我,回了个稍等,就赶紧去查原因了。
在反复确认grant没问题后,楼主持续蒙圈了。此时距离接到这个问题,已经过去了20分钟,
甚是焦急啊,明明一个小需求怎么会这样呢。
就在楼主万分无奈时,突然点到设计视图的高级页面,看到了安全性‘Definer’这个点。

万能的某度给了我答案,当视图的安全性为DEFINER时,数据库中存在DEFINER指定的用户,也就是图中的定义者所填写的。并且该用户拥有对应的权限,才能执行。与当前用户是否有权限无关。
当视图的安全性为INVOKER时,只要执行者有执行权限,就可以成功执行。
上图时我修改后问题解决的图了,因为当时写的是‘[email protected]%.%’且视图的安全性为DEFINER引起的。当然,如果开发不是指定帐号只读的话,也可以将安全性定义INVOKER,这样只要有对这个视图有权限的都可以查看了。

参考资料: http://pdf.us/2018/02/24/679.html

原文地址:http://blog.51cto.com/12906823/2103942

时间: 2024-11-08 23:03:10

Mysql视图权限设置的踩坑经历的相关文章

TiDB 深度实践之旅--真实“踩坑”经历

美团点评 TiDB 深度实践之旅(9000 字长文 / 真实“踩坑”经历) 4 PingCAP · 154 天前 · 3956 次点击 这是一个创建于 154 天前的主题,其中的信息可能已经有所发展或是发生改变. 原标题:美团点评携手 PingCAP 开启新一代数据库深度实践之旅 一.背景和现状 在美团,基于 MySQL 构建的传统关系型数据库服务已经难于支撑公司业务的爆发式增长,促使我们去探索更合理的数据存储方案和实践新的运维方式.随着近一两年来分布式数据库大放异彩,美团 DBA 团队联合架构

.Net4.6 Task 异步OA现金盘平台出租函数 比 同步函数 慢5倍 踩坑经历

异步Task简单介绍本标题有点 哗众取宠OA现金盘平台出租QQ2952777280[话仙源码论坛]hxforum.com[木瓜源码论坛]papayabbs.com ,各位都别介意(不排除个人技术能力问题) -- 接下来:我将会用一个小Demo 把 本文思想阐述清楚. .Net 4.0 就有了 Task 函数 -- 异步编程模型 .Net 4.6 给 Task 增加了好几个 特别实用的方法,而且引入了 await async 语法糖 当然,这是非常不错的技术,奈何我有自己的线程队列封装,也就没有着

【踩坑经历】一次Asp.NET小网站部署踩坑和解决经历

2013年给1个大学的小客户部署过一个小型的Asp.NET网站,非常小,用的sqlite数据库,今年人家说要换台服务器,要重新部署一下,好吧,虽然早就过了服务时间,但无奈谁叫人家是客户了,二话不说,上,源代码和以前的文件都有,部署还不是分分钟的事情,打开IIS挂上去就行了.谁知道,这个部署将近花了2天的时间.看看踩坑过程和解决方法. 本文原文地址:http://www.cnblogs.com/asxinyu/p/4380380.html 1.居然拿XP系统做服务器 第一个坑其实和我没关系,客户以

关于django中间件使用的踩坑经历

背景 ??这个之前本地写的那个django测试项目说起,那时候写了个练手的项目,目的是为了熟悉总结django2.0和django1.8的区别.不试不知道,一试就发现了许许多多的坑以及bug,把这些坑以及bug解决完了之后,打算写篇文章记录下我遇到的问题以及解决方法和思路. 起因 ??起因是当我在自强学堂的django课堂上,看到了有一个demo,这个demo具体实现的效果就是当网站在正式环境上运行的时候,为了安全起见,将DEBUG改为False(关闭调试模式),但是导致网站发生错误无法查看错误

mysql用户权限设置

关于mysql的用户管理,笔记 1.创建新用户 通过root用户登录之后创建 >> grant all privileges on *.* to testuser@localhost identified by "123456" ; // 创建新用户,用户名为testuser,密码为123456 : >> grant all privileges on *.* to testuser@localhost identified by "123456&qu

MySQL的权限设置和备份还原

MySQL数据库系统的维护工作主要包括用户权限的设置.数据库的备份与恢复,本篇博客将对进行这些操作进行讲解 数据库的用户授权 MySQL数据库的root用户账号拥有对所有库.表的全部权限,频繁使用root账号会给数据库服务器带来一定的风险.在工作中,通常会建立一些低权限的用户,只负责对一部分库.表的管理和维护操作,甚至对查询.修改.删除等各种操作做进一步的细化限制,从而将数据库的风险降至最低 1. 授予权限 grant语句:专门用来设置数据库的访问权限.当指定的用户名不存在时,grant语句会创

mysql 用户权限设置

windows使用的zip包的mysql.配置成功后,root用户没有权限,需要进行权限分配.管理员运行cmd,执行以下命令,进入mysql. mysql -u root -p Passwd Passwd代表密码,没有的话就空着. 然后执行以下命令,分配权限. mysql >grant all privileges on *.* to [email protected]"%" identified by "Passwd"; mysql >flush pr

Uber使用Swift重写APP的踩坑经历及解决方案(转载)

我是托马斯·阿特曼,目前是Uber移动架构和框架组负责人.Uber现在的用户量已经达到数百万,这么大的用户量,Uber是如何用框架实现的呢? Swift与百位工程师的故事 - 原因.架构.经验 今天我想谈谈一百多名Uber工程师是如何使用Swift编程语言的,在上周三新发布的Rider App主应用程序全部都是用Swift语言重构的.接下来我的分享主要包括三个部分:选择Swift的原因.Uber新架构:重构经验. 优步的开端--重构的原因 这是整个移动团队四年前的样子(指向屏幕显示有三名工程师的

【踩坑经历】SQLSTATE[HY000] [2002] Connection refused

使用docker搭建lnmp环境,使用的是分容器的搭建方案 框架使用thinkphp,想要连接数据MySQL,一直显示"SQLSTATE[HY000] [2002] Connection refused" 数据库配置host填的是localhost,后面改成了127.0.0.1,都是连接不了 还以为是数据库用户权限问题,新建了一个用户,刷新了权限,结果还是不行 想了好久,原来都是分容器的问题,由于采用了分容器的搭建方案,在php的容器内连接127.0.0.1或者localhost,肯定