sql - 在 Amazon REdshift 中查看权限 - 重新创建基础表并阻止查看权限

标签 sql amazon-web-services permissions amazon-redshift

我的 Amazon Redshift 中有一个用户可以访问特定 View 。 该 View 背后的基础表每天在 ETL 过程中重新创建。一天过去后, View 也会重新创建,因此,此 View 的权限将“阻止”给该特定用户,我需要再次授予权限。

这是 View Grant 语句:

GRANT USAGE ON SCHEMA dwh TO monte_carlo_data_project;
GRANT SELECT ON dwh.v_dp_dim_account TO monte_carlo_data_project;

这是显示重新创建的 View 的打印屏幕: DDL Tetx

当用户再次尝试查询 View 时(在重新创建 View 之后),他遇到了权限错误:

SQL Error [500310] [42501]: Amazon Invalid operation: permission denied for relation v_dp_dim_account;

只有当我再次运行 GRANT SELECT 命令时,用户才会再次获得权限。

知道如何处理这个问题吗?

最佳答案

使用 WITH NO SCHEMA BINDING 重新创建您的 View 一次。

这将允许您将表与 View “分离”

来自文档

没有架构绑定(bind) 指定 View 未绑定(bind)到基础数据库对象(例如表和用户定义的函数)的子句。因此, View 与其引用的对象之间没有依赖关系。即使引用的对象不存在,您也可以创建 View 。因为没有依赖关系,您可以删除或更改引用的对象而不影响 View

更多信息

https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_VIEW.html

关于sql - 在 Amazon REdshift 中查看权限 - 重新创建基础表并阻止查看权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56441710/

相关文章:

amazon-web-services - 如何获取cloudformation中的安全组列表

linux - 无法写入具有写入权限的USB

mysql - secure-file-priv 阻止 INTO OUTFILE 命令

sql - 字段内用逗号分隔的数据与新表

sql - NVL功能可以级联吗?

javascript - 使用 Permissions API 从 Firefox 中的 <select> onchange 处理程序请求权限

c# - MySQL 数据库 : Limit user access to data they created

sql - 具有多个值的SQL Case

amazon-web-services - 更新 AWS ECS 服务任务的最佳实践

python - 将图像上传到 s3 后,上传随附的缩略图