我正在编写一个脚本,需要获取 postgres 集群中的所有数据库,因此它需要连接到数据库(无论是哪个数据库)才能执行此操作。
是否可以假设“postgres”数据库始终可连接,或者如果不能,是否有一种编程方法来确定我可以连接的集群中的任意数据库?
PostgreSQL 具有三个“系统”数据库:postgres、template0 和 template1。我很确定它们都可以被删除。(您可能想在虚拟机中测试这一点。)我确信特权用户可以删除 postgres 和 template1。默认情况下,template0 不接受连接。
话虽如此,“postgres”的主要目的是为您提供一个可以连接的数据库。
postgres 数据库也在数据库集群初始化时创建。该数据库是供用户和应用程序连接的默认数据库。它只是 template1 的副本,可以根据需要删除并重新创建。
所以这是一个合理的假设,但不是一个万无一失的假设。我可以想象一些偏执(小心)的商店可能会放弃“postgres”并使用不同的数据库作为其内部默认数据库,以防他们的服务器受到损害。这有点像使用 SSH 的非默认端口。
归档时间: |
|
查看次数: |
2731 次 |
最近记录: |