首页 > 解决方案 > 我需要获取 Firebird 2.x 数据库的登录密码

问题描述

我有一台已经安装了 Firebird 数据库 2.0 的计算机。现在我需要在这台计算机上打开 fdb 文件,这些文件是 Firebird 数据库文件。所以我需要的是获取 Firebird 服务器的密码。

我已经尝试了默认用户和密码:SYSDBA 和 masterkey,但它不起作用。

我还尝试将 fdb 文件复制到安装了相同版本 Firebird 的另一台计算机上。这些文件可以在那台计算机上打开,但我需要的是获取用户名和密码并连接到这台计算机上的数据库,而不是在另一台计算机上打开。

错误:您的用户名和密码未定义。请您的数据库管理员设置 Firebird 登录。

标签: passwordsdatabase-connectionfirebird

解决方案


我假设您的计算机在 Microsoft Windows 下运行。
在 UNIX wrt 安全数据库的位置和使用 FB 嵌入式版本的细节方面,情况有些不同。
但是在问题得到编辑之前指定了 Windows:https ://stackoverflow.com/revisions/53881670/1


我已经尝试了默认用户和密码:SYSDBA 和 masterkey,但它不起作用。

在哪个节目?

如果有一些第 3 方应用程序,它的登录名/密码对很可能与 Firebird 服务器本身的不同。


security2.fdbFirebird 2.x 安装文件夹中包含用户和密码哈希。因此,根据您的实际需要,您有两种方法:

  1. 删除所有密码,SYSDBA/masterkey 除外。即:移除火鸟。确保“安全数据库”也被删除(如果没有 - 重命名或移动到另一个文件夹)。重新安装 Firebird。会让您使用开发工具(IBExpert/FlameRobin/FirebirdMaestro 等)窥视数据库,但可能会搞砸使用该数据库的任何第 3 方应用程序(因为该应用程序的用户将不再存在于 FB 服务器中)。

  2. 将旧计算机中的用户/密码克隆到新计算机。也就是说,在两台计算机上安装匹配的 Firebird 版本后,您必须在两台计算机上停止 FB 服务,然后将“安全数据库”从旧计算机复制到新计算机,然后在两台计算机上启动 FB 服务。这可能会使第 3 方应用程序工作,但不会让您将 SYSDBA/masterkey 与开发工具一起使用。

在这两种情况下,您还必须查看UDFFirebird 安装中的子文件夹 - 如果那里有一些非标准插件 DLL,您可能还需要将它们复制到新的 Firebird 安装中,因为数据库的某些部分可能依赖于那些(或没有,但在打开数据库之前你不知道)。


实际上,可能还有另一条短期窥视数据库的途径。下载并解压 Firebird 2 Embedded 版本。停止(暂时甚至永远)该计算机上的正常 Firebird 服务(这样数据库文件就不会再被锁定)。在上述开发工具之一中使用嵌入式 Firebird (fbEmbed.dll) 作为“客户端库”。对于嵌入式服务器版本,用户密码无关紧要。


推荐阅读