首页 文章

使用Delphi应用程序,Firebird错误“用户名和密码未定义”

提问于
浏览
14

我有一个使用Delphi 2006和Firebird 2.5的应用程序 . 对于连接,请使用Delphi的Interbase组件 . 我在设计时设置了一个用户名,密码为tc的TIBDatabase,并且工作正常,但是当我想在另一台PC上运行应用程序时(首先我在它上面安装Firebird 2.5),我收到了这个错误:

Statement failed, SQLSTATE = 28000

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

这是什么?我怎么解决这个问题?

4 回答

  • 0

    该消息清楚地说明了您在另一台机器上尝试连接的用户名和密码(让我们称之为 生产环境 ) . 从您的消息来看,它似乎与您在设计时连接的服务器不同 .

    我建议您轻松测试此问题,以便在TIBDatabase组件上将LoginPrompt属性设置为true,以允许它在连接之前向用户询问propper凭据 . 您将能够使用该服务器的任何有效用户名/密码组合进行连接 . 要确保组合有效,请尝试使用isql命令行工具进行连接,例如命令

    c:\test>isql test.fdb -u sysdba -p masterkey
    

    将使用默认用户名和密码连接到c:\ test \ test.fdb . (firebird根目录必须在路径环境变量中才能工作)

    此外,您可以使用gsec命令行工具调整此引擎的密码,也可以在尝试连接之前在该 生产环境 计算机上提供创建用户和更改密码 .

    在Windows上,firebird默认的sysdba密码为 masterkey .

  • 0

    在linux终端的“isql-fb”和数据库上的“CONNECT”之后: - 我在删除(删除)后重新解析并重新创建'SYSDBA'用户 .

    观察:我在'/ tmp / firebird'中遇到文件和文件夹权限问题,我需要使用'sudo'或root来打开'isql-fb'

    谢谢 .

  • 1

    此错误是因为Firebird数据库的凭据根本不存储在数据库文件中 . 它存储在Firebird服务器上的配置文件中 . 如果您复制数据库文件而不是密码 - 您将拥有不同的密码 .

    在Ubuntu机器上,您可以找到文件中的密码和用户名, /etc/firebird/<version>/SYSDBA.password

    它看起来像,

    ISC_USER=sysdba
    ISC_PASSWORD="password"
    

    使用这些凭据连接到数据库文件 .

  • 15

    我曾经尝试使用Firebird 2.5客户端库连接到Firebird 3.0.3数据库时遇到此错误 . 我忘了将客户端库更新到3.0.3 . 也许这会对某人有所帮助 .

相关问题