当我登录使用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.datistemplate
是true
的数据库,因为它们被认为是"内部"数据库,而不是普通的用户数据库。
客户端应用程序可以提供取消隐藏这些数据库的设置,或者您可以直接通过名称打开它们。
注意template0
通常是一个只读数据库,你不能修改,所以在管理UI中访问它没有什么意义。template1
可以连接和修改,但是无论你对template1
做什么,当你创建一个新的数据库时都会被复制(没有显式的TEMPLATE
选项),所以你通常不想改变它。
强烈建议您忽略template0
和template1
。当它们不存在