如何查询Postgres数据字典以了解特定用户拥有的所有权限.

我一直在寻找解决办法,但什么也找不到.谢谢,再见

推荐答案

table permissions:

select 
 * 
from information_schema.role_table_grants 
where grantee='YOUR_USER'
;

ownership:

select 
   * 
from pg_tables 
where tableowner = 'YOUR_USER'
;

schema permissions:

select  
  r.usename as grantor, e.usename as grantee, nspname, privilege_type, is_grantable
from pg_namespace
join lateral (
  SELECT
    *
  from
    aclexplode(nspacl) as x
) a on true
join pg_user e on a.grantee = e.usesysid
join pg_user r on a.grantor = r.usesysid 
 where e.usename = 'YOUR_USER'
;

Postgresql相关问答推荐

Haskell仆人发布FormUrlEncode for(向量字符串)字段

复合索引列的顺序导致不同的计划

在Postgres中,如何删除包含N个自然数的表,并替换为生成子查询?

如何在 sequelize 使用 db postgres 中通过外键更新记录和更新包含许多记录关系

Windows上的psql:错误:编码UTF8的字节序列无效:0xc8 0x20

查找最小值和最大值

无法从在 wsl 2 上运行的服务之一连接到在 wsl 2 上的容器中运行的 postgres 数据库

Postgresql JSONB 来了.现在用什么?Hstore?JSON?EAV?

psql中set、\set和\pset的区别

INSERT RETURNING 是否保证以 right的顺序返回?

为什么 SQLAlchemy 不创建串行列?

mysql_insert_id 替代 postgresql

Psycopg2 使用占位符插入表格

PostgreSQL:将时间戳转换为时间 - 或仅从时间戳列中检索时间

如何使用 node-postgres 将多行正确插入 PG?

是否可以在 CSV 格式的 Postgres COPY 命令中关闭报价处理?

防止 PostgreSQL 中的递归触发器

与 iexact 一起使用时,Django get_or_create 无法设置字段

使用 PostgreSQL 进行字母数字排序

用于将布尔列排序为 true、null、false 的 SQL