如何授予用户对系统表的有限访问权限?
Posted
技术标签:
【中文标题】如何授予用户对系统表的有限访问权限?【英文标题】:How to give limited access to system table to a user? 【发布时间】:2019-06-10 18:57:54 【问题描述】:我正在查看一个系统表:stl_load_errors
,并且我在stl_load_errors
之上创建了一个视图来限制数据。
示例视图:
create view vw_sample_load_errors
as
select * from stl_load_errors where filename like 'sample123%'
现在,当普通用户查询视图时,该用户无法看到任何行。 如何让他单独访问此视图。
我不想授予 syslog 访问权限,这将使用户可以无限制地访问所有系统表中的所有数据,包括 stl_load_errors
。
让我知道是否足够清楚。
【问题讨论】:
您可能需要创建并保持最新的物理表副本 - 不理想。 【参考方案1】:使用 Redshift 权限无法实现您想要的。用户可以在系统表中只看到他们自己的行(默认),或者他们可以在所有系统表中看到所有行(如果 SYSLOG ACCESS 设置为 UNRESTRICTED)。无法为单个系统表授予等效的 SYSLOG ACCESS UNRESTRICTED。
正如 Jon 在 cmets 中建议的那样,您可以创建一个进程,每隔一分钟左右将数据从 stl_load_errors 复制到另一个表中,并授予用户权限。
【讨论】:
感谢您的回答,快速跟进。如何每分钟复制到另一个表,我得到插入脚本,但如何让它每隔一分钟运行一次? 您需要一些外部工具或调度程序来按计划执行脚本。这里有一些建议:***.com/questions/42564910/…以上是关于如何授予用户对系统表的有限访问权限?的主要内容,如果未能解决你的问题,请参考以下文章
swift5如何在用户授予有限访问权限以选择某些照片后仅显示有限的照片库