Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby pg_dump:[archiver(db)]查询失败:错误:拒绝对关于关系的权限_Ruby_Postgresql_Ruby On Rails 3 - Fatal编程技术网

Ruby pg_dump:[archiver(db)]查询失败:错误:拒绝对关于关系的权限

Ruby pg_dump:[archiver(db)]查询失败:错误:拒绝对关于关系的权限,ruby,postgresql,ruby-on-rails-3,Ruby,Postgresql,Ruby On Rails 3,我正在尝试转储我的pg db,但出现了这些错误,请建议 pg_dump: [archiver (db)] query failed: ERROR: permission denied for relation abouts pg_dump: [archiver (db)] query was: LOCK TABLE public.abouts IN ACCESS SHARE MODE 您正在执行pg_dumpas的用户对公共架构没有权限 如果允许,请添加权限: GRANT USAGE ON

我正在尝试转储我的pg db,但出现了这些错误,请建议

pg_dump: [archiver (db)] query failed: ERROR:  permission denied for relation abouts
pg_dump: [archiver (db)] query was: LOCK TABLE public.abouts IN ACCESS SHARE MODE

您正在执行
pg_dump
as的用户对公共架构没有权限

如果允许,请添加权限:

GRANT USAGE ON SCHEMA public TO <user>;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO <user>;
将架构上的使用授权给public;
将架构中所有表上的SELECT授权给public;

当使用无法打开对象以转储对象的
角色(用户)时,这可能是一个常见错误

如前所述,您可以向要转储的特定模式授予权限,甚至可以将
角色
超级用户
属性一起使用

请注意,当您与某些云数据库提供商(如AWS/RDS)打交道时,您将不会收到具有
超级用户
属性的用户,因此您需要设法确保用于转储的用户具有所需的所有访问权限


将显示如何向数据库中的多个对象授予
GRANT
,但也要记住,恢复时需要先创建数据库。仅当您使用的是
pg_dumpall
时,这是不必要的,但您还需要转储
角色

更改用户权限:使用以下cmd以sudo用户身份登录

sudo -u postgres psql
更改用户角色

alter role <user-name> superuser;
改变角色超级用户;

我正在使用“postgres”角色,我收到了这个错误,因此我不相信这个答案。