You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FireDac连接PostgreSQL时如何正确强制SSL连接?

FireDAC连接PostgreSQL强制SSL连接的正确配置

问题原因

你当前配置了UseSSL=True和SSLMode=require但未生效,核心原因是FireDAC对PostgreSQL的SSL参数存在优先级逻辑:UseSSL=True会强制将SSL模式默认设为prefer(优先使用SSL,但允许降级到非SSL连接),直接覆盖了你设置的SSLMode=require,导致无法强制SSL连接。

正确配置代码

移除UseSSL=True参数,仅保留SSLMode=require即可实现强制SSL连接,修改后的代码如下:

dm.DMForm.Connect.Params.Clear;
dm.DMForm.Connect.Params.Add('DriverID=PG');
dm.DMForm.Connect.Params.Add('Server=localhost');
dm.DMForm.Connect.Params.Add('Database=dbname');
dm.DMForm.Connect.Params.Add('User_Name=username');
dm.DMForm.Connect.Params.Add('Password=pass');
dm.DMForm.Connect.Params.Add('Port=5432');
dm.DMForm.Connect.Params.Add('SSLMode=require');

进阶SSL验证配置

如果需要更严格的SSL证书校验(比如验证服务器证书的合法性),可以将SSLMode设置为verify-full或verify-ca,同时添加SSLRootCert参数指定CA证书的本地路径,示例:

dm.DMForm.Connect.Params.Add('SSLMode=verify-full');
dm.DMForm.Connect.Params.Add('SSLRootCert=C:\ssl\root.crt');

内容的提问来源于stack exchange,提问作者Olaf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 12:46:04