Firebird ADO.NET 4.10.0.0 数据提供程序是否可以与 Firebird 3.0 一起使用?

2024-04-03

我目前正在尝试将我的 ASP.net 4.5 项目连接到最近发布的 Firebird 3.0。

我使用的是 Visual Studio 2015 社区版 Firebird 3(64 位),并使用 NuGet 获取 ADO.NET 4.10.0.0。

但是,当我尝试连接时,出现异常并显示以下消息:

this.connect.ServerVersion 引发了“System.InvalidOperationException”类型的异常

我收到的其他一些消息:

消息:“连接已关闭”
来源:FirebirdSQL.Data.Fierbird.Client
堆栈跟踪:
在 C:\Users\Jiri\Documents\devel\NETProvider\working\NETProvider\src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbConnection.cs 中的 FirebirdSql.Data.FirebirdClient.FbConnection.get_ServerVersion() 处:第 217 行

IBExpert 连接没有任何问题。

此环境之前适用于 Firebird 2.5 和较旧的 ADO.Net

现在最好的猜测是它不受支持,但我的在线研究尚无定论(据我所知,有迹象表明它是用 Firebird 3 RC1 进行测试的)

如果有人能指出我正确的方向来推动这件事,那就太棒了。

提前致谢!


我回答这个问题是假设您安装了 Firebird 3 并且没有修改其任何配置。默认情况下,Firebird 3 的安装会有一些严格的安全设置:

  • 只支持新的SRP认证模型
  • 它将需要有线协议加密

这意味着尚不支持 SRP 身份验证模型和有线协议加密的驱动程序(如 Firebird .NET 提供程序 4.10)将无法立即进行连接。

为了能够连接,您需要执行以下操作

  1. 启用旧身份验证模型
  2. 将有线协议加密设置从必需降级为启用
  3. 在旧身份验证模型中创建用户

这些步骤都需要编辑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如上所述。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Firebird ADO.NET 4.10.0.0 数据提供程序是否可以与 Firebird 3.0 一起使用? 的相关文章

随机推荐

  • 不使用相关性直接在ASM中调用/跳转(x86)

    我正在将一个 C DLL 注入到游戏中 并且想将一个函数挂接到我自己的一些代码上 由于DLL每次都会映射到不同的位置 因此直接跳转和调用会更容易 另外 因为这是一个钩子 所以当我返回该函数时 我不想更改堆栈或寄存器 我声明一个 char 来
  • 是否有任何算法可以使循环赛安排具有每轮独特的组合?

    假设我有 10 个参与者的数组 1 2 3 4 5 6 7 8 9 10 假设一个联赛有10名参赛者 那么每个参赛者将与其他9名参赛者进行9场比赛 因此 每位参赛者将进行9轮单场比赛 例如 第一轮 1 2 3 4 5 6 7 8 9 10
  • 是否有 C++ 位域的可移植替代方案

    在许多情况下 尤其是在低级编程中 数据的二进制布局很重要 例如 硬件 驱动程序操作 网络协议等 在 C 中 我可以使用读 写任意二进制结构char 和按位运算 掩码和移位 但这是乏味且容易出错的 显然 我尝试限制这些操作的范围并将它们封装在
  • 季度的天数?

    我将如何实施dayNumber of quarter 例如 3 月 3 日 第一季度 应返回 62 31 一月 28 二月 3 三月 4 月 29 日 第二季度 应返回 29 到目前为止我的代码 int month getMonth dat
  • NSDateFormatter 无法设置 setTimeZone

    我想知道两个日期之间的差异 包括天 小时 分钟和秒 为此 我使用下面的代码 但它不起作用 void UpdateTableViewCellWithNSTimer NSString gameTime UIView inputView NSDa
  • 如何使用 C# MVC4 调用 $.ajax 中的错误函数?

    我有一个使用 C 的 MVC4 项目 在这个项目中 我的一个控制器有一个由 Ajax 函数调用的方法 HttpPost public string EditPackage int id string newPkgName try do lo
  • 锁定数据库记录以进行编辑

    我有一个 SQL Server 2008 数据库和一个 asp net 前端 我想在用户当前正在编辑记录但不确定哪种方法是最佳方法时实现锁定 我的想法是有一个isLocked记录的列 当用户拉出该记录时 它会设置为 true 这意味着所有其
  • 为 Sublime Text 2 的嵌入式 Python 解释器安装 IPython

    我正在尝试在 sublime 中安装 IpythonIntegration 包 我安装在 bash shell 中 最新的 ipython pyzmq pyside 然而 崇高控制台仍然给我一个错误 Reloading plugin hom
  • 如何设置完全离线的 Cordova 构建?

    我使用 Cordova 创建了一个测试项目cordova create hello com example hello HelloWorld cd hello cordova platform add android 我第一次用它构建它co
  • 如何使用 DataContractJsonSerializer 处理 Json?

    我有这样的 json 结构 id 12345 first name dino last name he emails preferred 1 personal 2 business 3 other 4 我想获取电子邮件中的值 所以我写了两个
  • 为什么我不应该将序列化数组插入到我的数据库字段中?

    我刚刚看到这个问题的第一条评论在 PHP 中插入序列化数组 https stackoverflow com questions 3588957 inserting into a serialized array in php这让我想知道为什
  • 从类变量引用静态方法

    我知道有这样的情况是有原因的 但不知何故我有它 class foo static method staticmethod def test pass class variable c name i 有什么办法呢 仅供记录 我相信这应该被视为
  • C++ 抛出取消引用的指针

    下面抛出的异常对象的类型是什么 问题1 gt range error r error throw r 答案1 gt range error 的对象 问题2 gt exception p r throw p 答案2 gt 异常的切片对象 问题
  • 如何根据 RFC 2231 对文件名进行编码?

    我需要在 Content Disposition HTTP 标头属性处对文件附件进行编码 我注意到 RFC 2231 是最新的广泛接受的标准 并且想使用它 然而 我很难在核心 Java SE 和 Java EE 库中找到它的实现 你们有什么
  • 汇编,多个参数 -m32 / linux (与 C 中的 stdarg 相同)

    为了解决这个问题 我了解C 而且我仍然是汇编的初学者 所以我在这里遇到了一个小问题 我在获取多个参数时遇到了一些麻烦 如果我应该这样做的话 也许可以对它们进行计数 并在汇编代码中使用格式参数 尝试向具有许多参数的字符串添加一些字节 我知道如
  • bash.exe:警告:找不到/tmp,请创建

    为什么我的崇高文本给我警告 bash exe 警告 找不到 tmp 请创建 尽管它正在正确构建和运行代码 请帮助我看到这个警告后感到很恼火 我搜索了整个网络 但找不到任何解决方案 此错误消息具有误导性 至少对我来说 创建 tmp 目录后并没
  • Flash / Java Applet 的 NPAPI 插件替代方案

    我的问题是关于 2014 年 12 月后 chrome 宣布不支持 NPAPI 插件 Firefox 也遵循同样的规定 我的一个旧应用程序中有一个基于 NPAPI 的插件 到目前为止该插件运行良好 但在 Chrome 和 Firefox 发
  • 将常规文件复用为 Mpeg TS

    我正在使用 mpeg2 ts 和 ISDB T 综合服务数字广播 地面 的文件广播方法工作 我的问题是我无法将文件放入数据流中 或者作为原始视频 或者在mpeg ts 我使用 ffmpeg 和 avconv 这是一个测试示例 ffmpeg
  • java中的变量定义使用接口还是类型?

    ArrayList aList new ArrayList List aList new ArrayList 这两者有什么区别 哪个更好用 为什么 List 是一个接口 而 ArrayList 是该接口的实现 第二种更好 因为这意味着您可以
  • Firebird ADO.NET 4.10.0.0 数据提供程序是否可以与 Firebird 3.0 一起使用?

    我目前正在尝试将我的 ASP net 4 5 项目连接到最近发布的 Firebird 3 0 我使用的是 Visual Studio 2015 社区版 Firebird 3 64 位 并使用 NuGet 获取 ADO NET 4 10 0