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



这些是ie的权限。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;

我可以使用 pgadmin 获得这些授权,但如果可能的话,我想从 psql 或命令行进行吗?

您可以从pg_class获取ACL信息,并使用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是个好主意。

相关内容

最新更新