↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

已结束支持的版本: 7.0 / 6.5
历史版本。 PostgreSQL 6.5 已结束支持。 请参阅 当前版本手册.

第 22 章 安全

数据库安全在若干个层面上加以处理:

  • 数据库文件保护。数据库中存储的所有文件都受到保护,除Postgres超级用户账户外,任何其他账户都不能读取。

  • 默认情况下,从客户端到数据库服务器的连接只允许通过本地 Unix 套接字进行,而不允许通过 TCP/IP 套接字。后端必须以-i选项启动才能允许非本地客户端连接。

  • 可以通过pg_hba.conf文件(位于 PG_DATA中)按 IP 地址和/或用户名限制客户端连接。

  • 客户端连接可以通过其他外部软件包进行认证。

  • Postgres中的每个用户都被分配一个用户名和(可选的)口令。默认情况下,用户对不是他们创建的数据库没有写权限。

  • 用户可以被分配到组,表访问可以基于组权限加以限制。

22.1. 用户认证

认证是后端服务器和postmaster 确保请求访问数据的用户确实是其声称的那个人的过程。所有调用Postgres的用户都会对照 pg_user类的内容进行检查,以确保他们被授权这样做。不过,用户实际身份的验证可以通过多种方式进行:

从用户 shell

从用户 shell 启动的后端服务器会先记录用户的(有效)用户 id,然后执行setuid 切换到用户postgres的用户 id。有效用户 id 被用作访问控制检查的依据。不进行其他认证。

从网络

如果Postgres系统构建为分布式,任何人都可以访问postmaster 进程的 Internet TCP 端口。DBA 配置 PGDATA 目录中的 pg_hba.conf 文件,根据发起连接的主机以及所连接的数据库来指定要使用的认证系统。可用认证系统的描述见pg_hba.conf(5)。当然,在 Unix 中基于主机的认证也不是万无一失的。意志坚定的入侵者也可能伪装来源主机。这些安全问题超出了Postgres的范围。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.