我有一个使用Delphi 2006和Firebird 2.5的应用程序。对于连接,请使用Delphi的Interbase组件。我在设计时设置了一个用户名,密码为tc的TIBDatabase,并且工作正常,但是当我想在另一台PC上运行应用程序时(首先我在它上面安装Firebird 2.5),我收到了这个错误:
Statement failed, SQLSTATE = 28000
这是什么?我该如何解决?您的用户名和密码未定义。请您的数据库管理员设置Firebird登录。
答案 0 :(得分:15)
该消息明确指出您在开发计算机上设计时用于连接的用户名和密码对于您尝试在其他计算机上连接的数据库服务器无效(让我们看看)称之为生产)。从您的消息来看,它似乎与您在设计时连接的服务器不同。
我建议您轻松测试此问题,以便在TIBDatabase组件上将LoginPrompt属性设置为true,以允许它在连接之前向用户询问propper凭据。您将能够使用该服务器的任何有效用户名/密码组合进行连接。要确保组合有效,请尝试使用isql命令行工具进行连接,例如命令
c:\test>isql test.fdb -u sysdba -p masterkey
将使用默认用户名和密码连接到c:\ test \ test.fdb。 (firebird根目录必须位于路径环境变量中才能使其工作)
此外,您可以使用gsec命令行工具调整此引擎的密码,也可以在尝试连接之前在该生产计算机上提供创建用户和更改密码。
在Windows上,firebird默认的sysdba密码为 masterkey 。
答案 1 :(得分:1)
at isq-fb'来自linux终端和' CONNECT'在数据库上: - 我在删除(删除)后解决了并重新创建了' SYSDBA'用户。
观察:我在' / tmp / firebird'的文件和文件夹权限方面遇到了问题。我需要使用' sudo'或root来打开isq-fb'
感谢。
答案 2 :(得分:1)
我曾经在尝试使用Firebird 2.5客户端库连接到Firebird 3.0.3数据库时遇到此错误。我只是忘记将客户端库更新到3.0.3。也许这会帮助某人。
答案 3 :(得分:1)
最终在Windows上对我有用的解决方案是以管理员身份启动cmd.exe并运行"C:\Program Files (x86)\Firebird\Firebird_3_0\gsec.exe" -user sysdba -password masterkey -mo sysdba -pw masterkey
答案 4 :(得分:0)
此错误是因为Firebird数据库的凭据根本不存储在数据库文件中。它存储在Firebird服务器上的配置文件中。如果您复制数据库文件而不是密码 - 您将拥有不同的密码。
在Ubuntu计算机上,您可以找到文件中的密码和用户名/etc/firebird/<version>/SYSDBA.password
它看起来像,
ISC_USER=sysdba
ISC_PASSWORD="password"
使用这些凭据连接到数据库文件。
答案 5 :(得分:-2)
最简单的解决方案是在添加和删除程序中卸载firebird及其所有相关组件,卸载后检查是否从syswow和system32文件夹中删除了gds32.dll dll,然后输入程序文件文件夹,然后手动删除文件夹firebird,即使在卸载多次后仍重新启动计算机并重新安装firebird,问题仍将得到解决。