第 21 章数据库角色列出了 PostgreSQL 的默认角色。但我在那里找不到用户postgres,该用户是 PostgreSQL 默认创建的。是postgres默认角色吗?是手册遗漏了还是我误解了?
在 PostgreSQL 中,是postgres特殊用户,还是像手动创建的普通用户一样?PostgreSQL 服务器需要用户吗postgres?删除它会不会给服务器带来一些麻烦或者其他什么问题?
在psql中运行的以下两个命令提供默认角色或用户名,其中都包含postgres. 为什么它们不同?
# select usename from pg_catalog.pg_user;
usename
----------
postgres
(1 row)
# select rolname from pg_catalog.pg_roles;
rolname
----------------------
postgres
pg_monitor
pg_read_all_settings
pg_read_all_stats
pg_stat_scan_tables
pg_signal_backend
(6 rows)
Run Code Online (Sandbox Code Playgroud)
postgres不是默认角色。
当您使用 创建 PostgreSQL 数据库集群时initdb,您可以使用 选项指定安装超级用户的名称-U。如果省略该选项,超级用户的名称将与您正在使用的操作系统用户的名称相同。
由于习惯上initdb由操作系统用户运行 PostgreSQL postgres,因此通常也会调用超级用户postgres,但这并不是必需的。
postgres与其他用户一样只是一个普通的超级用户。
您将很难删除它,因为它拥有所有系统对象,并且您无法轻松修改这些对象。建议您不要尝试。
pg_read_all_settings其他人不会出现,pg_user因为他们不是登录角色。
| 归档时间: |
|
| 查看次数: |
4396 次 |
| 最近记录: |