mysql 视图权限_mysql – 授予视图权限,拒绝对表进行选择

我有一个MySQL用户,我希望它只查看我想要的视图,而不是数据库中的任何其他表.我仅在某些视图上授予此用户权限,如下所示:

GRANT SHOW VIEW ON `myDatabase`.`awesome_view` TO 'thisUser'@'%'

如果我做演出补助金;声明我只能按预期看到此权限.

但是,我希望这个用户只查询视图,而不是查询与这些视图相关的表,但我找不到这样做的方法.似乎如果我希望用户在视图上进行选择,那么也必须为表授予选择权,否则我错了?

如果我拒绝其余表中的select语句,并在命令行中尝试进行选择,我得到以下内容:

SELECT * FROM myDatabase.fordibenForYouTable;

ERROR 1142 (42000): SELECT command denied to user 'thisUser'@'localhost' for table 'fordibenForYouTable'

这就是我想要的,但如果我选择了视图数据,我也被拒绝了.

有没有一种方法可以让用户只使用视图而不是表格?

解决方法:

您必须将视图视为表格. information_schema已经有了

如果你跑

SELECT table_name FROM information_schema.tables

WHERE engine IS NULL;

你得到了所有的意见.

只需将视图上的SELECT授予用户,如下所示

GRANT SELECT ON `myDatabase`.`fordibenForYouTable` TO 'thisUser'@'localhost' ;

执行此操作后,您应具有对表的SELECT访问权限.

为了确保,为’thisUser’运行SHOW GRANTS @’localhost’;

您还应该能够看到“thisUser”@“localhost”授予了哪些表级访问权限

SELECT * FROM mysql.tables_priv

WHERE user='thisUser' and host='localhost'\G

您还可以查看哪些用户具有对myDatabase.fordibenForYouTable的表级访问权限

SELECT * FROM mysql.tables_priv

WHERE db='myDatabase' and table_name='fordibenForYouTable'\G

试试看 !!!

标签:mysql,permissions,view

来源: https://codeday.me/bug/20190805/1593768.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值