postgresql – 什么是特殊数据库“postgres”?

我有一个Postgresql服务器,上面运行着几个数据库.其中一个数据库叫做postgres,它从一开始就存在.我在里面看不到任何表格,我从未明确地使用它,但我注意到,任何用户都可以在数据库中创建表格(这不是我想要的 – 我不希望除管理员之外的任何用户创建任何表格.)

我觉得它是某种特殊的数据库,是服务器正常运行所必需的,但它的目的究竟是什么呢?内部存储(或可能存储)哪种数据?它是否包含有关其他数据库的元数据(例如information_schema?).如果我从公共中撤销对此数据库的连接权限,是否会发生令人讨厌的事情?或者,如果我甚至放弃它?

我用谷歌搜索了半个小时,但总是得到完全不相关的东西,因为postgres这个词也用于用户postgres和DBMS本身.

没什么特别的.如Postgresql文档 Creating a Database中所述,您需要连接到数据库,以便创建另一个

Since you need to be connected to the database server in order to execute the CREATE DATABASE command,the question remains how the first database at any given site can be created. The first database is always created by the initdb command when the data storage area is initialized. (See Section 17.2.) This database is called postgres. So to create the first “ordinary” database you can connect to postgres.

Template Databases

Note: template1 and template0 do not have any special status beyond the fact that the name template1 is the default source database name for CREATE DATABASE. For example,one Could drop template1 and recreate it from template0 without any ill effects. This course of action might be advisable if one has carelessly added a bunch of junk in template1. (To delete template1,it must have pg_database.datistemplate = false.)

The postgres database is also created when a database cluster is initialized. This database is meant as a default database for users and applications to connect to. It is simply a copy of template1 and can be dropped and recreated if necessary.

相关文章

项目需要,有个数据需要导入,拿到手一开始以为是mysql,结果...
本文小编为大家详细介绍“怎么查看PostgreSQL数据库中所有表...
错误现象问题原因这是在远程连接时pg_hba.conf文件没有配置正...
因本地资源有限,在公共测试环境搭建了PGsql环境,从数据库本...
wamp 环境 这个提示就是说你的版本低于10了。 先打印ph...
psycopg2.OperationalError: SSL SYSCALL error: EOF detect...