如何授予用户对系统表的有限访问权限?

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/…

以上是关于如何授予用户对系统表的有限访问权限?的主要内容,如果未能解决你的问题,请参考以下文章

授予对 Postgres 中所有表的访问权限

ClickHouse 仅授予用户对数据库中几个表的访问权限

swift5如何在用户授予有限访问权限以选择某些照片后仅显示有限的照片库

PostgreSQL 授予对表的访问权限

如何授予 Amazon Redshift 用户读取系统表、视图、日志等的访问权限?

如何在gke中为用户授予名称空间访问权限?