因此,我已经创建了一个专门用于备份的用户。当我执行转储命令时,发生以下错误:
pg_dump: [archiver (db)] query failed: ERROR: permission denied for table {{tableName}}
pg_dump: [archiver (db)] query was: LOCK TABLE public.{{tableName}} IN accESS SHARE MODE
当前,所有者是各个表的postgres
用户。
我希望使用仅具有SELECT访问权限的独占备份用户。以下是分配给用户的角色的特权
CREATE ROLE {{roleName}};
\c {{databaseName}};
GRANT USAGE ON SCHEMA public TO {{roleName}};
GRANT SELECT ON ALL TABLES IN SCHEMA public TO {{roleName}};
GRANT SELECT ON ALL SEQUENCES IN SCHEMA mySchema TO {{roleName}};
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO {{roleName}};