FireDac 中的 SSL 模式用于连接到 Postgres

问题描述 投票:0回答:1

我用的: Delphi 12、FireDac、Postgres 11、Windows

我在 FireDac 中的连接配置如下所示:

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('UseSSL=True');
dm.DMForm.Connect.Params.Add('SSLMode=require')

在我看来,这个配置是错误的,尽管它符合规范。 SSLMODE 不强制 SSL 连接。当我连接到未配置 SSL 的服务器时,firedac 会建立连接,但它应该报告错误。

当我使用 UniDac 组件执行相同的操作并尝试连接到同一服务器时,该组件无法连接并返回错误。也就是说,它的行为正确。

有谁知道如何在firedac中正确强制SSL连接?

postgresql delphi ssl firemonkey firedac
1个回答
0
投票

FireDAC 不直接支持的参数需要放入

PGAdvanced
参数中并使用 PostgreSQL 文档中记录的参数和名称。

dm.DMForm.Connect.Params.Add('PGAdvanced=sslmode=require');

参考资料: 连接到 PostgreSQL (FireDAC) - 连接定义参数和文档 → PostgreSQL 16,数据库连接控制函数,sslmode

© www.soinside.com 2019 - 2024. All rights reserved.