↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

百科 / 认证方法 / 身份认证与访问控制

gss

认证方法 gss。

当前查看 PostgreSQL 18。

中文定义与说明

认证方法 gss。

索引访问方法
gss
配置
pg_hba.conf

同版本中文手册节选

GSSAPI 是一种在 RFC 2743 中定义的安全认证行业标准协议。PostgreSQL 支持 GSSAPI 用于认证、通信加密,或两者兼而有之。GSSAPI 为支持它的系统提供自动认证(单点登录)。认证本身是安全的。如果使用 GSSAPI 加密或 SSL 加密,沿数据库连接发送的数据将被加密;否则,将不会被加密。

当编译 PostgreSQL 时,GSSAPI 支持必须被启用,详见第 17 章。

当 GSSAPI 使用 Kerberos 时,它会使用一个标准的服务主体(认证身份)名称,其格式为 servicename/hostname@realm。某个安装实际使用的主体名(principal name)不会以任何方式硬编码在 PostgreSQL 服务器中;相反,它是在服务器读取的 keytab 文件中指定的,服务器据此确定自己的身份。如果 keytab 文件中列出了多个主体,服务器会接受其中任意一个。服务器的 realm 名称是服务器可访问的 Kerberos 配置文件中指定的首选 realm。

连接时,客户端必须知道它打算连接的服务器主体名。该主体名中的 servicename 部分通常是 postgres,但也可以通过 libpq 的连接参数 krbsrvname 选择其他值。hostname 部分则是 libpq 被告知要连接的完全限定主机名。realm 名称是客户端可访问的 Kerberos 配置文件中指定的首选 realm。

查看完整中文手册与上下文。

说明

认证方法 gss。

方法
gss
配置
pg_hba.conf
清单
用户可见的源码认证方法

手册中的方法选项与替代方式

选项或术语含义
include_realm如果设为 0,则在通过用户名映射( 第 20.2 节 )之前,会先从已认证用户的主体名中去掉 realm 名称。不建议这样做;它主要是为了向后兼容而保留的,因为在多 realm 环境中这并不安全,除非同时使用了 krb_realm 。建议将 include_realm 保持为默认值(1),并在 pg_ident.conf 中提供显式映射,把主体名转换成 PostgreSQL 用户名。
map允许把客户端主体映射为数据库用户名。详见 第 20.2 节 。对于 GSSAPI/Kerberos 主体,例如 username@EXAMPLE.COM (或者较少见的 username/hostbased@EXAMPLE.COM ),用于映射的用户名分别是 username@EXAMPLE.COM (或 username/hostbased@EXAMPLE.COM ),除非已经将 include_realm 设为 0;在那种情况下,映射时视为系统用户名的是 username (或 username/hostbased )。
krb_realm设置用于匹配用户主体名的 realm。如果设置了该参数,则只接受来自该 realm 的用户;如果未设置,则允许来自任意 realm 的用户连接,但仍受已执行的用户名映射约束。

文档与源码

来源构建
版本
18.6
构建
https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2
来源指纹
555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f

版本比较

PostgreSQL 17 → 18: 无变化。

比较已记录的接口与属性,排除来源指纹和构建元数据。某个样本中没有记录,不能据此判断实际引入或移除的版本。

相关条目

导出 JSON · 返回认证方法 · 收录范围为 PostgreSQL 10 至 20;最早采样版本不一定是实际引入版本。