首页 > 解决方案 > Firebird3.0 security3.fdb 每天都被损坏/编辑导致“isc_attach_database failed”

问题描述

我们正在使用在 Firebird 之上运行的软件。在开始在家工作之前一切都很好。firebird 2.5.x 和连接的问题在一段时间后人们无法再连接。因此,软件制造商提示我们应该升级到 3.0。我们将 FDB 迁移到 3.0,在客户端开始与 2.0 客户端连接(windows-dll)之前,一切看起来都很好。

问题是,当有人连接加载较旧的 DLL 版本时,他们损坏了 security3.fdb 文件,并且不再找到 SYSDBA 用户,但之前登录的人工作正常。

使用 Flamerobin 时会出现错误:isc_attach_database failed, sql message: -902, enfine code: 335544472 Your user name and password is not defined。请您的数据库管理员设置 Firebird 登录。

我们确实更新了 dll 的客户端版本,这开始解决问题,但已经过去了两个多星期,我接到人们无法连接的清晨电话。

如果有帮助,我正在使用来自 debian repo 的 firebird3.0(因为它使用的默认配置与来自 firebird 页面的配置不同)。

经过数小时的研究后,我发现的解决方法是在 firebird 工作时替换 security3.fdb 文件,这在 20% 中工作 80% 我需要在替换文件后重新启动 firebird。

有没有办法防止这种情况?我尝试删除安全文件的写权限,但火鸟不喜欢那样。

firebird.conf(其余的是默认的,也就是注释)

UdfAccess = Restrict /usr/lib/x86_64-linux-gnu/firebird/3.0/UDF   # the software use udf but without it it also lock down the database
RemoteServicePort = 3050  # just to be sure
RemoteBindAddress = 192.168.0.80 # this was needed because it would start listening on ipv6 only interface which was strange

标签: debianfirebirdfirebird-3.0

解决方案


推荐阅读