authentication_timeout (integer)
完成客户端认证的最长时间,以秒计。如果一个客户端没有在这段时间里完成认证协议,服务器将关闭连接。这样就避免了出问题的客户端无限制地占有一个连接。默认值是1分钟(1m)。这个参数只能在服务器命令行上或者在postgresql.conf文件中设置。
ssl (boolean)
启用SSL连接。这个选项只能在postgresql.conf文件或服务器命令行上设置。默认是off。
ssl_ca_file (string)
指定包含SSL 服务器证书颁发机构(CA)的文件名。 相对路径是相对于数据目录。该参数只能在postgresql.conf 文件或服务器命令行上设置。默认值为空,表示不载入 CA 文件, 并且不执行客户端证书验证。
ssl_cert_file (string)
指定包含SSL 服务器证书的文件名。相对路径是相对于数据目录的。 这个参数只能在postgresql.conf文件或服务器命令行上设置。 默认值是server.crt。
ssl_crl_file (string)
指定包含SSL 服务器证书撤销列表(CRL)的文件名。 相对路径是相对于数据目录。这个参数只能在postgresql.conf 文件中或服务器命令行上设置。默认值为空,意味着不载入 CRL 文件。相对路径是相对于数据目录。这个参数只能在服务器启动时设置。
ssl_key_file (string)
指定包含SSL 服务器私钥的文件名。 相对路径是相对于数据目录。这个参数只能在postgresql.conf 文件中或服务器命令行上设置。默认值为server.key。
ssl_ciphers (string)
指定一个SSL密码列表,用于安全连接。 这个设置的语法和所支持的值列表可以 参见OpenSSL包中的 ciphers手册页。 这个参数只能在postgresql.conf 文件中或服务器命令行上设置。默认值是 HIGH:MEDIUM:+3DES:!aNULL。默认值通常是合理的选择, 除非你有特别的安全性需求。默认值的解释:HIGH使用来自HIGH组的密码的密码组(例如 AES, Camellia, 3DES)MEDIUM使用来自MEDIUM组的密码的密码组(例如 RC4, SEED)+3DESOpenSSL 对HIGH的默认排序是有问题的,因为它认为 3DES 比 AES128 更高。这是错误的,因为 3DES 提供的安全性比 AES128 低,并且它也更加慢。 +3DES把它重新排序在所有其他HIGH和 MEDIUM密码之后。!aNULL禁用不做认证的匿名密码组。这类密码组容易收到中间人攻击,因此不应被使用。可用的密码组细节可能会随着 OpenSSL 版本变化。可使用命令 openssl ciphers -v 'HIGH:MEDIUM:+3DES:!aNULL'来查看 当前安装的OpenSSL版本的实际细节。注意这个列表是根据服务器密钥类型 在运行时过滤过的。
ssl_prefer_server_ciphers (boolean)
指定是否使用服务器的SSL 密码首选项,而不是用客户端的。这个参数只能在postgresql.conf文件中或服务器命令行上设置。 默认是true。使用服务器的首选项通常会更好,因为服务器更可能会被合适地配置。
ssl_ecdh_curve (string)
指定用在ECDH密钥交换中的曲线名称。它需要被所有连接的客户端支持。 它不需要与服务器椭圆曲线密钥使用的曲线相同。这个参数只能在postgresql.conf 文件或服务器命令行上设置。默认值是prime256v1。OpenSSL 命名了最常见的曲线: prime256v1 (NIST P-256)、 secp384r1 (NIST P-384)、 secp521r1 (NIST P-521)。 openssl ecparam -list_curves命令可以显示可用曲线的完 整列表。不过并不是所有的都在TLS中可用。
password_encryption (enum)
当在CREATE USER或ALTER ROLE 中指定了一个密码时,这个参数决定加密密码所使用的算法。默认值是md5, 它将密码存储为MD5哈希(也接受on作为md5的别名)。 将该参数设置为scram-sha-256将使用SCRAM-SHA-256加密密码。请注意,较老的客户端可能缺少对SCRAM认证机制的支持, 因此不适用于使用SCRAM-SHA-256加密的密码。
ssl_dh_params_file (string)
指定包含用于所谓的短暂DH系列SSL密码的Diffie-Hellman参数的文件的名称。 缺省值为空,在这种情况下,使用默认编译的DH参数。 如果攻击者设法破解众所周知的内编译DH参数,使用自定义DH参数可以减少暴露。 可以使用命令openssl dhparam -out dhparams.pem 2048 创建您自己的DH参数文件。该参数只能在postgresql.conf文件或服务器命令行上设置。
krb_server_keyfile (string)
设置Kerberos 服务器密钥文件的位置。这个参数只能在 postgresql.conf文件中或服务器命令行上进行设置。
krb_caseins_users (boolean)
设置Kerberos 和 GSSAPI 用户名是否应区分大小写。默认是off(区分大小写)。这个参数只能在 postgresql.conf文件中或服务器命令行上进行设置。
db_user_namespace (boolean)
允许针对每个数据库的用户名。默认是关闭的。这个参数只能在postgresql.conf文件中或服务器命令行上进行设置。如果打开这个参数,你应该以username@dbname的方式创建用户。 当一个username被连接着的客户端传递时,@和数据库名被增加到用户名中并且那个数据库相关的用户名会被服务器查找。注意,当你在 SQL 环境里创建包含@的用户名时, 你需要用引号包围用户名。打开这个参数之后,你还是能够创建普通的全局用户。只要在客户端指定用户名时附加一个@,例如joe@。 在服务器查找这个用户名之前,这个@会被剥除。db_user_namespace导致客户端和服务器的用户名表示变得不同。 认证检查总是使用服务器用户名来完成,因此认证方法必须为服务器的用户名配置,而不是客户端的用户名。因为在客户端和服务器上md5都使用用户名作为盐粒,md5不能和db_user_namespace一起使用。