我正在尝试保护 Postgre 数据库,我注意到用户通过 LDAP 密码登录后可以在数据库列表中看到默认的 3 个数据库。
- 模板0
- 模板1
- PostgreSQL 的
我如何才能向最终用户隐藏这些数据库?
谢谢你,
答案1
template0
是库存数据库。它不应该被触碰。template1
是新数据库克隆的系统数据库。postgres
是一个默认数据库,通常是您想要使用CREATE USER
或CREATE DATABASE
启动系统时连接的数据库。
你当然不会需要postgres 数据库,来自文档
注意:除了名称 template1 是 CREATE DATABASE 的默认源数据库名称之外,template1 和 template0 没有任何特殊状态。例如,可以删除 template1 并从 template0 重新创建它,而不会产生任何不良影响。如果有人在 template1 中不小心添加了一堆垃圾,这种做法可能是明智的。(要删除 template1,它必须具有 pg_database.datistemplate = false。)
初始化数据库集群时也会创建 postgres 数据库。此数据库是用户和应用程序要连接的默认数据库。它只是 template1 的副本,可以丢弃如有必要,可重新创建。
因此,我猜您可以安全地删除postgres
和template1
,如果您永远不想创建任何数据库,那么这样做是可能的template0
。但是,您计划完成什么尚不清楚。