小编Myl*_*les的帖子

列出 PostgreSQL 上的数据库 CONNECT 权限

如何查看用户的 CONNECT 等数据库级别权限?

我已经找到了两种方法,但都不是完美的:

使用功能has_database_privilege()

这可行,但我必须为每个用户一一手动运行它:

SELECT has_database_privilege('david', 'postgres', 'connect');
Run Code Online (Sandbox Code Playgroud)

这似乎返回了不完整的结果。它NULL首先返回,但david其他用户仍然可以连接到postgres数据库。仅当我在该数据库上运行任何GRANT命令(当然还有REVOKE)之后,该表才会填充一些结果:{=Tc/postgres,postgres=CTc/postgres}。所以我想我每次使用这种方法之前都必须GRANT这样做?REVOKE

SELECT datname as "Relation", 
       datacl as "Permissions" 
FROM pg_database 
WHERE datname = 'postgres';
Run Code Online (Sandbox Code Playgroud)

在 Ubuntu 上使用 PostgreSQL 10.9

postgresql permissions

2
推荐指数
1
解决办法
5872
查看次数

标签 统计

permissions ×1

postgresql ×1