我具有PostgreSQL服务器的主从配置,并且数据库中定义了多个架构。现在,主服务器和复制服务器都具有一个用户readonly
,该用户最初只能访问public
模式。
我有另一个模式,比方说alt_schema
;并且我想授予readonly
用户访问所有表格的权限。
此后,我在主服务器中运行以下查询,以向用户提供对模式的访问。
GRANT ALL ON ALL TABLES IN SCHEMA alt_schema TO readonly;
以上命令已成功向用户提供了对模式表的访问。
但是,权限不会传播到复制服务器(我等待了大约30分钟,期望可能会有一些滞后)。由于自动复制失败,因此我尝试在复制服务器本身中手动运行上述查询,但显然它给了我以下错误:
ERROR: cannot execute GRANT in a read-only transaction
有实现上述目标的方法。
注意:我的Postgres服务器托管在Google Cloud SQL中。