【问题标题】: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

让我知道是否足够清楚。

【问题讨论】:

  • 您可能需要创建并保持最新的物理表副本 - 不理想。

标签: amazon-redshift


【解决方案1】:

使用 Redshift 权限无法实现您想要的。用户可以在系统表中只看到他们自己的行(默认),或者他们可以在所有系统表中看到所有行(如果 SYSLOG ACCESS 设置为 UNRESTRICTED)。无法为单个系统表授予等效的 SYSLOG ACCESS UNRESTRICTED。

正如 Jon 在 cmets 中建议的那样,您可以创建一个进程,每隔一分钟左右将数据从 stl_load_errors 复制到另一个表中,并授予用户权限。

【讨论】:

  • 感谢您的回答,快速跟进。如何每分钟复制到另一个表,我得到插入脚本,但如何让它每隔一分钟运行一次?
  • 您需要一些外部工具或调度程序来按计划执行脚本。这里有一些建议:stackoverflow.com/questions/42564910/…
猜你喜欢
  • 2012-02-22
  • 2018-09-18
  • 1970-01-01
  • 1970-01-01
  • 2018-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多