一些PostgreSQL数据库不可见的客户端,如Navicat或pgAdmin



当我登录使用pgAdmin或Navicat查看我的远程PostgreSQL数据库时,我可以毫无问题地连接,并且下面列表中的前三个数据库显示良好。但是由于某种原因,我无法让最后两个数据库("template0"one_answers"template1")与其他数据库一起显示。此外,当我ssh到服务器的数据库时,我可以运行"SELECT * FROM a_table_in_template1_database;",它会毫无问题地显示表的所有内容,因此我知道数据库和其中的表一切正常。我怎样才能得到"template1"数据库显示在这个列表和工作?下面是PostgreSQL的终端输出,当我运行"list":

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 DATABASE template1 TO postgres"这样的事情,但这似乎没有帮助。

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

我只是想能够显示我的所有5个数据库出现在导航或pgAdmin,并能够访问所有这些:)任何帮助将不胜感激!

这些工具倾向于隐藏pg_database.datistemplatetrue的数据库,因为它们被认为是"内部"数据库,而不是普通的用户数据库。

客户端应用程序可以提供取消隐藏这些数据库的设置,或者您可以直接通过名称打开它们。

注意template0通常是一个只读数据库,你不能修改,所以在管理UI中访问它没有什么意义。template1可以连接和修改,但是无论你对template1做什么,当你创建一个新的数据库时都会被复制(没有显式的TEMPLATE选项),所以你通常不想改变它。

强烈建议您忽略template0template1。当它们不存在

相关内容

  • 没有找到相关文章

最新更新