web-dev-qa-db-ja.com

pg_dump:[archiver(db)]クエリが失敗しました:エラー:関係aboutsのアクセス許可が拒否されました

私の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
13

これをダンプするためにオブジェクトを開くことができなかったROLE(ユーザー)を使用する場合、これは一般的なエラーになる可能性があります。

前に述べたように、ダンプしたい特定のスキーマに許可したり、ROLESUPERUSER属性とともに使用したりすることもできます。

AWS/RDSなどの一部のクラウドデータベースプロバイダーを扱っている場合は、SUPERUSER属性を持つユーザーを受け取ることができないため、ダンプに使用されたプロバイダーがすべてを持っていることを確認する必要があります。アクセスが必要です。

https://www.postgresql.org/docs/current/static/sql-grant.html は、データベース上の多くのオブジェクトにGRANTを与える方法を示しますが、復元するには、最初にデータベースを作成する必要があります。 pg_dumpallを使用している場合のみ必要ですが、ROLESもダンプする必要があります。

11
Vinnix

実行しているユーザーpg_dumpには、パブリックスキーマに対する権限がありません。

許可されている場合は、権限を追加します。

GRANT USAGE ON SCHEMA public TO <user>;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO <user>;
15
d1ll1nger