码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2018-04-16 15:13:03      阅读:350      评论:0      收藏:0      [点我收藏+]

标签:视图权限   show view   查看视图权限   

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

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

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

技术分享图片

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

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

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

标签:视图权限   show view   查看视图权限   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!