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

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

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1
历史版本PostgreSQL 8.2 已于 2011 年 12 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本。

17.3. 连接和认证 #

17.3.1. 连接设置 #

listen_addresses (string) #

指定服务器用于监听客户端应用连接的 TCP/IP 地址。此值采用以逗号分隔的主机名和/或数字 IP 地址列表的形式。特殊项*对应所有可用的 IP 接口。如果列表为空,服务器不会监听任何 IP 接口,此时只能通过 Unix 域套接字连接。默认值为 localhost, 它只允许建立本地“回环”连接。此参数只能在服务器启动时 设置。

port (integer) #

服务器监听的 TCP 端口,默认是 5432。请注意,服务器监听的所有 IP 地址都使用同一个端口号。 此参数只能在服务器启动时设置。

max_connections (integer) #

决定数据库服务器允许的最大并发连接数。默认值通常是 100 个连接,但如果内核设置不支持 (在 initdb 期间确定),则可能更少。这个参数只能在服务器启动时设置。

增加这个参数可能会导致PostgreSQL请求比你的操作系统默认配置所允许的更多的System V共享内存或信号量。如果有必要,关于如何调整那些参数的信息见第 16.4.1 节。

superuser_reserved_connections (integer) #

决定为 PostgreSQL 超级用户连接保留多少个连接“槽”。 同时活跃的连接数最多始终只能达到 max_connections。 当活跃并发连接数至少达到 max_connections 减去 superuser_reserved_connections 时,新连接将只接受超级用户, 并且不再接受新的复制连接。

默认值是 3 个连接。该值必须小于 max_connections。 这个参数只能在服务器启动时设置。

unix_socket_directory (string) #

指定服务器用于监听来自客户端应用连接的 Unix 域套接字目录。 默认值通常是 /tmp,但可以在构建时更改。这个 参数只能在服务器启动时设置。

unix_socket_group (string) #

设置 Unix 域套接字的所属组(套接字的所属用户总是启动服务器的 用户)。与参数 unix_socket_permissions 组合, 可以作为一种针对 Unix 域连接的附加访问控制机制。默认是一个空 字符串,表示当前用户的默认组。这个参数只能在服务器启动时设置。

unix_socket_permissions (integer) #

设置 Unix 域套接字的访问权限。Unix 域套接字使用通常的 Unix 文件系统权限集。参数值应是以 chmod 和 umask 系统调用所接受格式指定的数字权限模式。(要使用惯用的八进制格式,数字必须以 0(零)开头。)

默认权限是 0777,表示任何人都可以连接。合理的其他取值包括 0770(仅属主和所属组,另见 unix_socket_group)和 0700(仅属主)。(注意,对 Unix 域套接字而言,只有写权限起作用,因此设置或撤销读权限和执行权限没有意义。)

此访问控制机制独立于 第 20 章 中描述的机制。

此参数只能在服务器启动时设置。

bonjour_name (string) #

指定 Bonjour 广播名。如果此参数设置为空字符串 ''(默认值),则使用计算机名。如果服务器编译时未启用 Bonjour 支持,此参数会被忽略。此参数只能在服务器启动时设置。

tcp_keepalives_idle (integer) #

在支持 TCP_KEEPIDLE 套接字选项的系统上,指定在一条 空闲连接上两次发送保活(keepalive)报文之间间隔的秒数。值为零时 使用系统默认值。如果不支持 TCP_KEEPIDLE,该参数必须 为零。该参数对通过 Unix 域套接字建立的连接无效。

tcp_keepalives_interval (integer) #

在支持 TCP_KEEPINTVL 套接字选项的系统上,指定在 重传一个保活报文之前等待响应的秒数。值为零时使用系统默认值。 如果不支持 TCP_KEEPINTVL,该参数必须为零。该参数 对通过 Unix 域套接字建立的连接无效。

tcp_keepalives_count (integer) #

在支持 TCP_KEEPCNT 套接字选项的系统上,指定在连接 被视为已断开之前可以丢失多少个保活报文。值为零时使用系统默认值。 如果不支持 TCP_KEEPCNT,该参数必须为零。该参数对 通过 Unix 域套接字建立的连接无效。

17.3.2. 安全和认证 #

authentication_timeout (integer) #

允许完成客户端认证的最长时间,以秒为单位。如果一个客户端没有在这段时间里完成认证协议,服务器将关闭连接。 这样就避免了出问题的客户端无限制地占有一个连接。 默认值是 1分钟(1m)。这个参数只能在服务器命令行上或者在postgresql.conf文件中设置。

ssl (boolean) #

启用SSL连接。使用前请阅读第 16.7 节。默认值是off。这个参数只能在服务器启动时设置。

ssl_renegotiation_limit (integer) #

指定在一个SSL加密连接上可以流过多少数据之后将进行会话密钥的重新协商。当可以检查大量流量时,重新协商能降低攻击者进行密码分析的机会,但它也会带来很大的性能损失。该限制以发送和接收流量的总和来检查。如果这个参数被设置为 0,则禁用重新协商。默认值为0。

注意

2009 年 11 月之前的 SSL 库在使用 SSL 重新协商时不安全,原因是 SSL 协议中的一个漏洞。作为针对该漏洞的权宜修复,一些厂商发布的 SSL 库不具备重新协商能力。如果在客户端或服务器上正在使用这类库,应当禁用 SSL 重新协商。

password_encryption (boolean) #

在CREATE USER或ALTER USER中指定密码,且既没有写ENCRYPTED也没有写UNENCRYPTED时,此参数决定密码是否被加密。默认值为on(加密密码)。

krb_server_keyfile (string) #

设置服务器的Kerberos密钥文件的位置。详情请参考第 20.2.3 节。 这个参数只能在服务器启动时设置。

krb_srvname (string) #

设置 Kerberos 服务名。详情见第 20.2.3 节。 这个参数只能在服务器启动时设置。

krb_server_hostname (string) #

设置服务主体的主机名部分。它与 krb_srvname 组合 起来生成完整的服务主体,即 krb_srvname/krb_server_hostname@REALM。 如果未设置,默认为服务器的主机名。详情见第 20.2.3 节。 这个参数只能在服务器启动时设置。

krb_caseins_users (boolean) #

设置是否应该以大小写不敏感的方式对待 Kerberos 用户名。默认值是off(大小写敏感)。这个参数只能在服务器启动时设置。

db_user_namespace (boolean) #

此参数启用各数据库独立的用户名。默认关闭。 此参数只能在postgresql.conf文件中或在服务器命令行上设置。

如果启用此参数,你应以username@dbname的形式创建用户。 连接的客户端传入username时,会在用户名后附加@和数据库名, 然后由服务器查找此数据库专属的用户名。请注意,在 SQL 环境中创建名称包含@的用户时,需要用引号括起用户名。

启用此参数后,仍然可以创建普通的全局用户。只需在客户端指定用户名时 附加@。服务器查找用户名之前会去掉 @。

注意

此特性旨在作为找到完整解决方案之前的临时措施。届时将移除此选项。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。