19.3. 连接和身份验证

19 .3.1. 连接设定

运行备用服务器时,必须将此参数设置为与主服务器上相同或更高的值。否则,备用服务器将不允许查询。

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

除了名为.s.PGSQL.nnnn的套接字文件本身(其中* nnnn *是服务器的端口号)之外,还将在每个unix_socket_directories目录中创建一个名为.s.PGSQL.nnnn.lock的普通文件。都不应该手动删除这两个文件。

在没有 Unix 域套接字的 Windows 上,此参数无关。

在没有 Unix 域套接字的 Windows 上,此参数无关。

默认权限为0777,这意味着任何人都可以连接。合理的替代方法是0770(仅用于用户和组,另请参见unix_socket_group)和0700(仅用于用户)。 (请注意,对于 Unix 域套接字,仅写权限很重要,因此设置或撤消读或执行权限毫无意义.)

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

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

此参数与完全忽略套接字许可权的系统(尤其是 Solaris 10 或更高版本的 Solaris)无关。在那里,通过将unix_socket_directories指向搜索权限仅限于所需受众的目录,可以达到类似的效果。在没有 Unix 域套接字的 Windows 上,该参数也无关紧要。

Note

在 Windows 上,值 0 将将此参数设置为 2 小时,因为 Windows 没有提供读取系统默认值的方法。

Note

在 Windows 上,值 0 将将此参数设置为 1 秒,因为 Windows 没有提供读取系统默认值的方法。

Note

Windows 不支持此参数,并且必须为零。

19 .3.2. 安全与认证

在先前的 PostgreSQL 版本中,此文件的名称硬编码为root.crt

在先前的 PostgreSQL 版本中,此文件的名称硬编码为root.crl

默认值的说明:

可用的密码套件详细信息将在 OpenSSL 版本中有所不同。使用命令openssl ciphers -v 'HIGH:MEDIUM:+3DES:!aNULL'查看当前安装的 OpenSSL 版本的实际详细信息。请注意,此列表在运行时根据服务器密钥类型进行过滤。

较早的 PostgreSQL 版本没有此设置,并且始终使用 Client 端的首选项。此设置主要是为了与这些版本向后兼容。通常,使用服务器的首选项会更好,因为更可能是正确配置了服务器。

最常见曲线的 OpenSSL 名称为:prime256v1(NIST P-256),secp384r1(NIST P-384),secp521r1(NIST P-521)。可用曲线的完整列表可以使用命令openssl ecparam -list_curves来显示。但是,并非所有这些功能都可以在 TLS 中使用。

请注意,较旧的 Client 端可能缺乏对 SCRAM 身份验证机制的支持,因此不适用于使用 SCRAM-SHA-256 加密的密码。有关更多详细信息,请参见Section 20.3.2

此参数只能在postgresql.conf文件或服务器命令行中设置。

如果启用,则应将用户创建为* username@dbname 。当连接的 Client 端传递 username *时,@和数据库名称将附加到用户名上,并且服务器将查找该特定于数据库的用户名。请注意,在 SQL 环境中创建名称包含@的用户时,将需要用引号引起来。

启用此参数后,您仍然可以创建普通的全局用户。在 Client 端中指定用户名时,只需添加@即可,例如joe@。在服务器查找用户名之前,@将被删除。

db_user_namespace导致 Client 端和服务器的用户名表示形式不同。身份验证检查始终使用服务器的用户名进行,因此必须为服务器的用户名(而不是 Client 端的用户名)配置身份验证方法。由于md5在 Client 端和服务器上都使用用户名作为盐,因此md5不能与db_user_namespace一起使用。

Note

在找到完整的解决方案之前,此功能仅用作临时措施。届时,该选项将被删除。

上一章 首页 下一章