一些PostgreSQL数据库通过类似的Navicat或pgAdmin的客户不可见(Some Pos

2019-08-18 20:37发布

当我登录查看与pgAdmin的或我的Navicat远程PostgreSQL数据库,我可以连接没有任何问题,且低于前三个数据库列表中显示了罚款。 但由于某些原因,我不能让过去的两个数据库(“template0中”和“模板”)与他人展现出来。 此外,当我ssh到服务器的数据库,我可以运行一个“SELECT * FROM a_table_in_template1_database;” 它显示了所有没有问题的表的内容,所以我知道一切正常与数据库以及数据库中的表。 我怎样才能获得“模板”数据库,在这个列表中显示和工作? 这里是PostgreSQL的距离,当我运行“\目录”终端的输出:

template1=# \list
                                List of databases
     Name      |  Owner   | Encoding | Collation | Ctype |   Access privileges   
---------------+----------+----------+-----------+-------+-----------------------
 mygigline     | jball037 | LATIN1   | en_US     | en_US | 
 mygiglinemain | postgres | LATIN1   | en_US     | en_US | 
 postgres      | postgres | LATIN1   | en_US     | en_US | 
 template0     | postgres | LATIN1   | en_US     | en_US | =c/postgres
 template1     | postgres | LATIN1   | en_US     | en_US | =CTc/postgres
                                                         : postgres=CTc/postgres
(5 rows)

它看起来像有可能是一些与“访问权限”,是造成这一点。 但是,我做的事情,如“GRANT ALL ON template1数据库TO Postgres的”,但似乎并没有帮助。

信息的另一个有用的部分:当我登录与Navicat的和三个数据库显示,我可以点击“打开数据库”,然后我输入“模板”的选项,它会显示与沿左侧面板上其他三个数据库,但我不能点击或用它做任何事情。

我只是希望能够表现出我的数据库的所有5个出现在任何的Navicat或pgAdmin的,并能够访问所有的人:)任何帮助将不胜感激!

Answer 1:

这些工具往往隐藏数据库,其中pg_database.datistemplatetrue ,因为他们被认为是“内部”的数据库,而不是普通的用户数据库。

客户端应用程序(一个或多个)可以提供设置,取消隐藏这些DB,或者您可以直接通过名称打开它们。

需要注意的是template0通常是不能修改只读数据库,所以有很少的一点是要在管理界面访问它。 template1可以连接到和修改,但无论你做template1 ,当你创建一个新的数据库(没有明确将复制TEMPLATE选项),所以你通常不希望去改变它。

我强烈建议你忽略template0template1 。 假装它们不存在。



文章来源: Some PostgreSQL databases not visible through clients like Navicat or pgAdmin