我回答这个问题是假设您安装了 Firebird 3 并且没有修改其任何配置。默认情况下,Firebird 3 的安装会有一些严格的安全设置:
这意味着尚不支持 SRP 身份验证模型和有线协议加密的驱动程序(如 Firebird .NET 提供程序 4.10)将无法立即进行连接。
为了能够连接,您需要执行以下操作
- 启用旧身份验证模型
- 将有线协议加密设置从必需降级为启用
- 在旧身份验证模型中创建用户
这些步骤都需要编辑firebird.conf
。如果您将 Firebird 安装到Program Files
,您需要确保您的编辑器以管理员身份运行才能保存更改。
启用旧版身份验证
要启用旧身份验证,您需要编辑或添加以下行firebird.conf
:(请注意,以前缀为的行#
是评论!)
AuthServer = Srp, Legacy_Auth
降级线路协议加密
要降级有线协议加密设置,您需要编辑或添加以下行firebird.conf
:
WireCrypt = Enabled
创建旧身份验证用户
为了能够在旧身份验证模型中创建用户,您需要通过编辑或添加以下行来启用旧 usermanager 插件firebird.conf
:
UserManager = Srp, Legacy_UserManager
完成上述更改后,重新启动 Firebird,使用 SYSDBA 或其他管理员帐户使用您最喜欢的数据库管理工具连接到(任何)Firebird 3 数据库,并使用 Legacy_UserManager 创建一个用户CREATE USER http://firebirdsql.org/file/documentation/release_notes/html/en/3_0/rnfb30-access-sql.html#rnfb30-user-sql(替换用户名和密码legacy
具有合适的值):
CREATE USER legacy PASSWORD 'legacy' USING PLUGIN Legacy_UserManager
确保提交,否则用户并未真正创建。
现在您应该能够使用刚刚创建的用户从 C# 进行连接。
这也记录在Firebird 3 发行说明,第 12 章兼容性问题、旧版身份验证 http://firebirdsql.org/file/documentation/release_notes/html/en/3_0/rnfb30-compat-legacyauth.html.
Using gsec
或者创建用户的服务功能已被弃用。如果您仍想使用其中任何一个在旧身份验证模型中创建用户,则需要编辑firebird.conf
并把Legacy_UserManager
列表中的第一个。
Firebird .NET 提供程序版本 5.0.0.0 及更高版本中的支持
请注意,Firebird .NET 提供程序版本 5.0.0.0 添加了对 SRP 的支持(无有线协议加密)。因此,从 Firebird .NET 提供程序版本 5 开始,您可以使用新的身份验证模型。只需确保降级有线协议加密(设置WireCrypt
) from Required
(默认)到Enabled
如上所述。