[英]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.