我正在开发需要Firebird DB数据的应用。创建此DB的人忘记了SYSDBA密码,我需要创建新用户或只是查看。与DB通信的其他应用程序也具有未知用户。但我可以连接到数据库服务器,所以我看到了DB文件系统。我知道MySQL有后门,Firebird也应该有,对吧?
答案 0 :(得分:3)
Firebird没有这样的后门。但您可以将数据库移动到另一个Firebird安装(或使用另一个Firebird安装中的security2.fdb
),在那里您知道SYSDBA
的密码。
其他选项包括通过以RDB$ADMIN
角色的成员身份登录来重置密码,但这假设这是SYSDBA
早先在安全数据库和一个普通数据库中授予的。或使用受信任的身份验证作为Windows管理员组的成员。但是在Firebird 2.5下,这需要为安全数据库启用AUTO ADMIN MAPPING
(这不是默认值)。
有关详细信息,请参阅SQL user management commands。
也就是说,建议将“普通”用户设置为数据库的所有者和RDB$ADMIN
,并使用该用户添加或修改数据库的结构(但在这种情况下,很可能需要SYSDBA帐户)。