授予postgres数据库访问权限

时间:2014-02-22 20:08:18

标签: postgresql postgresql-9.3

我的数据库目前拥有正确的权限。我正在尝试创建副本,但我无法获得相同的权限。

我用

创建了一个转储

pg_dump database1 > dbdump

然后我用

创建一个数据库

createdb database2

然后我使用转储来恢复新创建的数据库。

psql database2 < dbdump

要查看我执行\l的权限,我有以下内容:

                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
-----------+----------+----------+-------------+-------------+-----------------------
 database1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =T/postgres          +
           |          |          |             |             | postgres=CTc/postgres+
           |          |          |             |             | root=CTc/postgres
 database2 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
(5 rows)

如您所见,数据库2上的访问权限不同。

我尝试了以下命令,

GRANT ALL ON ALL TABLES IN SCHEMA public TO root;

但这似乎没有改变任何东西,我无法使用用户名/密码登录数据库,我可以使用database1。

1 个答案:

答案 0 :(得分:1)

检查您的pg_hba.conf文件,该文件指定哪个主机可以使用哪种身份验证机制连接到哪个数据库。

您可能希望将其基于工作初始数据库中的文件内容。