如何授予对特定数据库中架构中所有表的权限?

How do I grant privilges on all tables in a schema in a particular database?

首先,这里是我的 Postgres 设置的概述

我有 3 个数据库,每个数据库中都有一个模式,它在所有 3 个数据库中共享相同的名称。

我已经编写了一个脚本来创建一个角色并为每个数据库中的模式赋予它一些权限。

这是我授予角色权限的方式:

\c Database1
GRANT SELECT, UPDATE, INSERT ON ALL TABLES IN SCHEMA "schemaName" TO roleName;
\c Database2
GRANT SELECT, UPDATE, INSERT ON ALL TABLES IN SCHEMA "schemaName" TO roleName;
\c Database3
GRANT SELECT, UPDATE, INSERT ON ALL TABLES IN SCHEMA "schemaName" TO roleName;

有没有办法在 GRANT 语句中明确说明我想影响哪个数据库?

不,这是不可能的:instance/cluster 中的每个数据库都是独立的,不可能引用与当前数据库不同的数据库(除非您使用一些扩展名,如 dblink 或 postgres_fdw ).