You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL同集群内数据库备份恢复的角色权限处理问询

PostgreSQL集群内数据库复制的角色权限与备份恢复问题

目标是在同一PostgreSQL集群内复制数据库,此前该功能通过集群超级用户实现,但目前执行备份恢复时遇到诸多问题,核心困扰在于对PostgreSQL角色与权限的理解,不确定当前操作方向是否正确。

当前操作流程

  • 连接源数据库,删除并重新创建目标数据库
  • 执行以下SQL终止目标数据库的所有连接:
SELECT pg_terminate_backend(pid)
FROM pg_stat_activity
WHERE datname='{target_database}';
  • 生成.bat文件执行核心备份恢复命令:
pg_dump.exe -T dos_histomemo "postgresql://{username}:{encoded_pwd}@{ip}:{port}/{original_database}" | "{path_to_psql}psql.exe" -v ON_ERROR_STOP=1 "postgresql://{username}:{encoded_pwd}@{ip}:{port}/{target_database}"

测试后发现的问题

  • 创建目标数据库的用户会自动成为其所有者,必须确保恢复操作与创建操作使用同一用户
  • public schema的所有者为postgres:
    • 若使用--no-owner参数备份,需为user_app授予目标数据库schema的创建权限
    • 若保留所有权信息备份,则需以postgres身份执行恢复
  • 以postgres身份执行操作时,因其他用户使用了ALTER DEFAULT PRIVILEGES,导致无法正常恢复角色

咨询问题

  • 当前操作方向是否正确?
  • 是否应该使用postgres用户管理集群所有权限?
  • 该场景下更通用的角色处理方式是什么?
  • 需符合ISO27001标准,该标准在此场景下的具体要求是什么?

内容的提问来源于stack exchange,提问作者imerle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 18:00:13