代码之家  ›  专栏  ›  技术社区  ›  mpapec

从命令行获取视图/表/etc的sql权限

  •  0
  • mpapec  · 技术社区  · 6 年前

    my_view 看法

    pwx1=# \dp my_view
                                        Access privileges
      Schema  |      Name       | Type |   Access privileges   | Column privileges | Policies
    ----------+-----------------+------+-----------------------+-------------------+----------
     schema_x | my_view         | view | user1=arwdDxt/user1  +|                   |
              |                 |      | user2=arwdDxt/user1  +|                   |
              |                 |      | user3=r/user1         |                   |
    

    我想以sql的形式获得这些资助,比如:

    GRANT SELECT ON TABLE my_view TO user3;
    

    1 回复  |  直到 6 年前
        1
  •  1
  •   Laurenz Albe    6 年前

    您可以从以下位置获取ACL信息 pg_class 使用 aclexplode 功能更加美观:

    SELECT acl.grantor::regrole AS grantor,
           acl.grantee::regrole AS grantee,
           privilege_type,
           is_grantable
    FROM pg_catalog.pg_class AS t
       CROSS JOIN LATERAL aclexplode(t.relacl) AS acl
    WHERE t.oid = 'schema_x.my_view'::regclass;
    

    从长远来看,学习阅读PostgreSQL ACL是一个好主意。