繁体   English   中英

检查用户的 Postgres 访问权限

[英]Check Postgres access for a user

我查看了GRANT Found here的文档,并试图查看是否有内置函数可以让我查看数据库中的可访问性级别。 当然还有:

\\dp\\dp mytablename

但这并没有显示我的帐户可以访问的内容。 我想查看我有权访问的所有表。 谁能告诉我是否有一个命令可以检查我在 Postgres 中的访问级别(我是否有SELECTINSERTDELETEUPDATE权限)? 如果是这样,那个命令是什么?

您可以在信息架构中查询table_privileges表:

SELECT table_catalog, table_schema, table_name, privilege_type
FROM   information_schema.table_privileges 
WHERE  grantee = 'MY_USER'

使用它也可以列出受赠者并删除 Postgres PaaS Azure 的(PG_monitor 和 Public)。

SELECT grantee,table_catalog, table_schema, table_name, privilege_type
FROM   information_schema.table_privileges 
WHERE  grantee not in ('pg_monitor','PUBLIC');

对于特定数据库上的所有用户,请执行以下操作:

# psql
\c your_database
select grantee, table_catalog, privilege_type, table_schema, table_name from information_schema.table_privileges order by grantee, table_schema, table_name;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM