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一起使用。