PostgreSQL:pg_dump失败并被拒绝

时间:2015-01-23 09:14:09

标签: postgresql

今天我试图转储我的PgSQL数据库,这是我不时没有遇到的事情,但它失败了:

borelupo@l5nets02:~$ pg_dump -f spam-20150123.sql -F p -O -C -h x.x.x.x -U borelupo spam
Password:
pg_dump: SQL command failed
pg_dump: Error message from server: ERROR:  permission denied for relation badports
pg_dump: The command was: LOCK TABLE public.badports IN ACCESS SHARE MODE

现在,用户 borelupo 是该表的所有者,他如何才能权限被拒绝

spam=> \d
         List of relations
Schema |     Name      | Type  |  Owner
-------+---------------+-------+----------
public | badports      | table | borelupo

是什么给出的? PostgreSQL是9.1.14。

编辑:当我以管理员用户(postgres)连接时,转储工作正常。但我肯定不需要登录数据库服务器,切换用户等。

3 个答案:

答案 0 :(得分:3)

我想我发现了这个问题:作为所述表的所有者并不意味着拥有所有权限。所以我真的缺少给定表的权限。我的坏。

答案 1 :(得分:0)

pg_dump是一个管理功能。因此,需要为用户提供适当的权限才能使用该功能。

尝试GRANT选择并更新对它的访问权限。或者,您可以以超级用户身份登录以执行操作。

答案 2 :(得分:0)

我的问题是我的 postgres 角色不是 superuser;这是通过 alter role postgres superuser; 修复的。