【问题标题】:Redshift view definition permissions issueRedshift 视图定义权限问题
【发布时间】:2020-07-21 00:39:58
【问题描述】:

运行此查询,即使作为 postgres 登录,也仅为当前登录创建的视图显示 view_definition。

select table_schema as schema_name, table_name as view_name, view_definition from information_schema.views where table_schema not in ('information_schema', 'pg_catalog') order by schema_name, view_name;

是否有某种方法可以获取所有视图的视图定义,无论它们是谁创建的?

如果不是,我打算在我的 etl 调度程序中做一个工作,将所有视图重新分配给所有者 postgres。

【问题讨论】:

    标签: amazon-redshift


    【解决方案1】:

    如果当前用户(甚至管理员)不是视图 [1] 的所有者,Information_schema.views 会为 view_definition 返回 NULL。这就是它在 Postgres 中的设计方式,并且由于 Redshift 基于 Postgres 8.0.2,我认为它具有类似的行为。

    AWS 的 GitHub 存储库中的 v_generate_view_ddl [2] 管理视图可以帮助获取所有视图定义。

    参考:
    [1] Postgres 文档 - https://www.postgresql.org/docs/8.0/infoschema-views.html
    [2] Redshift 管理员视图 - https://github.com/awslabs/amazon-redshift-utils/blob/master/src/AdminViews/v_generate_view_ddl.sql

    【讨论】:

      【解决方案2】:

      您可以只使用“显示视图”命令,它会显示视图定义,而不管是谁在 redshift 中创建的。

      show view <nameoftheview>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-07-12
        • 2020-01-23
        • 1970-01-01
        • 1970-01-01
        • 2020-02-27
        • 1970-01-01
        • 2012-12-18
        • 1970-01-01
        相关资源
        最近更新 更多