我有一个MySQL用户,我希望它仅查看所需的视图,而不查看数据库中的任何其他表。我仅在某些视图上授予此用户权限,如下所示:
GRANT SHOW VIEW ON `myDatabase`.`awesome_view` TO 'thisUser'@'%'
如果我show grants;
发表声明,我只能按预期看到此权限。但是,我希望该用户仅查询视图,而不查询与这些视图相关的表,但是我找不到解决方法。似乎是如果我希望用户在视图上进行选择,则还必须为表授予选择权,否则我错了吗?
如果我select
在其余表中拒绝该语句,并且在命令行中尝试进行选择,则会得到以下信息:
SELECT * FROM myDatabase.fordibenForYouTable;
ERROR 1142 (42000): SELECT command denied to user 'thisUser'@'localhost' for table 'fordibenForYouTable'
那确实是我想要的,但是如果选择视图数据,我也会被拒绝。
有没有一种方法可以让用户只使用视图而不是表?