Ruby pg_dump:[archiver(db)]查询失败:错误:拒绝对关于关系的权限
我正在尝试转储我的pg 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_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”角色,我收到了这个错误,因此我不相信这个答案。