【发布时间】:2018-03-20 17:43:15
【问题描述】:
【问题讨论】:
标签: firebird firebird2.5 change-password forgot-password password-recovery
【问题讨论】:
标签: firebird firebird2.5 change-password forgot-password password-recovery
就像 Mark 所说的,并不是数据库“没有 SYSDBA 用户”——Firebird 2.x 中的数据库从没有用户——而是使用了这个老技巧来创建 SYSDBA 命名角色以触发名称登录时发生冲突。
浏览2007 Security presentation后,我有两个建议给你。
IBExpert 中的数据库资源管理器就是一个这样的工具。完整的 IBExpert 是为非苏联国家付费的,免费的 IBExpert Personal 可能没有该工具。但我希望该工具可以在 IBExpert 试用版中使用。另一个工具是 IBSurgeon FirstAID。可能还有更多工具可以从损坏的数据库中提取数据。您只需要查找并读取一个特定的行。
在演示文稿的第 23 页上给出了创建阻止角色的查询。
INSERT INTO RDB$ROLES(RDB$ROLE_NAME, RDB$OWNER_NAME)
VALUES (‘SYSDBA’, ‘LOCKSMITH’);
因此,您必须查看所述表,找到具有所述角色的行,并了解对该角色具有权限的用户名(在示例中为LOCKSMITH)。
之后,您连接到同一服务器上的任何其他数据库,并使用您所学的名称创建用户。然后您使用该名称登录到有问题的数据库和DROP ROLE SYSDBA; COMMIT;。
【讨论】:
在 Firebird 数据库中不包含密码(直到 @Arioch'The 提到的 v3.0)。密码仅用于服务器。换句话说,您可以将数据库文件从现有服务器复制到另一个(使用已知密码)并打开数据库文件。
【讨论】: