我的 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 时(在重新创建 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/