繁体   English   中英

在没有角色和/或权限的情况下从 .sql 转储文件恢复 postgres 架构?

[英]Restore postgres schema from .sql dump file without role and/or permissions?

尝试从在另一台服务器上创建的 .sql 转储文件恢复 postgres 数据库架构时收到以下错误:

REVOKE psql:backup.sql:158885: ERROR: role "server_name" does not exist

转储文件是使用pg_dump -U username "server_name" -n schema_name > schema_name.sql

如何创建没有角色和/或权限的转储文件?

通过使用标志--no-owner--no-acl

不要输出命令来设置对象的所有权以匹配原始数据库。 默认情况下,pg_restore 发出 ALTER OWNER 或 SET SESSION AUTHORIZATION 语句来设置创建的模式元素的所有权。 这些语句将失败,除非与数据库的初始连接是由超级用户(或拥有脚本中所有对象的同一用户)建立的。 使用-O,任何用户名都可以用于初始连接,该用户将拥有所有创建的对象。

防止恢复访问权限(授予/撤销命令):

pg_dump --no-owner --no-acl -U username "server_name" -n schema > schema.sql

https://www.postgresql.org/docs/9.2/static/app-pgrestore.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM