2014-02-22 51 views
0

我有一个数据库目前具有正确的权限。我试图创建一个副本,但我无法获得相同的权限。在postgres中授予数据库访问权限

我创建了一个转储

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) 

正如你所看到的,访问权限不在DATABASE2一样。

我尝试下面的命令,

GRANT ALL ON ALL TABLES IN SCHEMA public TO root;

,但似乎并没有改变任何东西,并使用用户名/密码,我可以与数据库1我不能登录到数据库通过SSH。

回答

1

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

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

相关问题