我有一个 PostgreSQL 服务器,上面运行着多个数据库。其中一个数据库名为postgres
,它从一开始就存在。我看不到里面的任何表,我从来没有明确使用过它,但我注意到,任何用户都可以在数据库中创建表(这不是我想要的 - 我不希望除管理员之外的任何用户创建任何地方的任何桌子)。
我有一种感觉,它是服务器正常运行所需的某种特殊数据库,但它的目的究竟是什么?什么样的数据(或可能)存储在里面?它是否保存有关其他数据库的元数据(例如information_schema
?)。如果我connect
从公众那里撤销对该数据库的特权,会发生什么令人讨厌的事情吗?或者,如果我什至放弃它?
我用谷歌搜索了半个小时,但总是得到完全不相关的东西,因为这个词postgres
也用于用户postgres
和 DBMS 本身。
ype*_*eᵀᴹ 31
没有什么特别之处。如 PostgreSQL 文档创建数据库中所述,您需要连接到一个数据库,以便创建另一个数据库:
由于您需要连接到数据库服务器才能执行
CREATE DATABASE
命令,问题仍然是如何在任何给定站点创建第一个数据库。第一个数据库总是在initdb
数据存储区初始化时由命令创建。(请参阅第 17.2 节。)该数据库称为postgres
。因此,要创建第一个“普通”数据库,您可以连接到postgres
.
并在模板数据库中:
注:
template1
与template0
没有超越的事实名称的任何特殊地位template1
是缺省的源数据库名称CREATE DATABASE
。例如,可以template1
在template0
没有任何不良影响的情况下删除并重新创建它。如果不小心在template1
. (要删除template1
,它必须有pg_database.datistemplate = false
。)该
postgres
数据库时,数据库集群初始化也被创建。该数据库旨在作为用户和应用程序连接到的默认数据库。这是一个简单的副本,template1
并且可以被丢弃并在必要时重新创建。
归档时间: |
|
查看次数: |
2819 次 |
最近记录: |