首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在基于Firebird的应用程序中定义登录和密码?

如何在基于Firebird的应用程序中定义登录和密码?
EN

Stack Overflow用户
提问于 2019-03-14 15:18:40
回答 2查看 3.5K关注 0票数 0

我知道,这不是严格意义上的编程错误,因为我没有编写这个程序,但我在一台PC上安装了Streamsoft Pro,当我将所有程序数据复制到第二台计算机时,我得到了错误:

代码语言:javascript
复制
Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements.
unsupported on-disk structure for file c:\STREAM soft\STREAM soft SQL\Baza\SYSTEMST.FB; found 11.2, support 11.1

找到了这里 tat,这是与Firebird版本相关的错误,所以我将其更新为2.5.8,现在我得到了其他错误:

代码语言:javascript
复制
DMSystem.SystemDatabase:
Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements.
Your username and password are not defined. Ask your database administrator to set up a Firebird login.

我的问题是:如何设置这些?

EN

回答 2

Stack Overflow用户

发布于 2019-03-14 16:17:16

Firebird将所有用户/密码保存在所谓的“安全数据库”中,即每个安装的Firebird实例一个。

使用Firebird 3或4可能更复杂/更灵活,但这不是您的情况。

在一台计算机上可以运行多个Firebird 1.x或2.x实例,每个实例都有自己的“安全数据库”。但是通常计算机上只有一个Firebird实例,如果有的话,那么在大多数情况下,您可能会认为有一个“安全数据库”使Firebird用户和计算机上的密码保持不变。

我有关于Firebird版本的错误--我将其更新为2.5.8

你没有明确地把它拼出来,所以我只能猜测你到底做了什么。

但如果我能读懂星星,它就会是这样:

  1. 你安装了一些错误版本的Firebird。要么是2.0.x,要么是2.1.x,甚至是3.0.x --但是SteamSoft无法使用。
  2. 在安装过程中,SteamSoft很有可能发现错误的Firebird版本,并在错误的Firebird实例的“安全数据库”中创建了所需的用户/登录名。
  3. 当您移除错误的Firebird安装时(您卸载了它,不是吗?)因为在一台计算机上有几个FB实例是可能的,但是需要特殊的安排,而且你没有报告说你做了)--它的“安全数据库”是孤立的。不,你不能仅仅找到它并扔到Firebird 2.5 -不同的FB版本有不同的不兼容格式。
  4. 当您安装新鲜的FB2.5.8-它有通常干净的“安全数据库”,只有SYSDBA用户,没有任何针对SteamSoft的用户。
  5. 当您对FB2.5的这个干净的“安全数据库”运行SteamSoft时,它试图与不存在的用户登录,但失败了。

如果这个读水晶球是正确的,那么最简单的方法就是

  1. 卸载SteamSoft。
  2. 验证Firebird 2.5.8。没有和SS一起卸载,也没有去激活。例如,如果您重新启动计算机,然后打开Windows服务--在“运行”状态下仍然应该有"Firebird Server默认实例“服务。
  3. 安装SteamSoft。希望它能找到正在运行的FB2.5.8,并自动创建所有必需的自定义用户。

或者,您可以查阅SteamSoft文档或它们的支持。

  • http://www.streamsoft.eu/about-us/#contact
  • http://firebirdsql.org/en/case-studies-catalog/streamsoft-38114

您很有可能自己创建丢失的用户,使用SteamSoft提供的诊断实用程序,或者只是内置Firebird命令(如果您想获得所需的用户和密码列表,但是SteamSoft可能不愿意把它们拼出来)。与重新安装SteamSoft相比,创建用户要快得多,但是对于没有经验的用户来说,学习如何创建和创建什么可能会更长。

如果可以,您可以在与第一台计算机完全相同版本的新计算机上安装火鸟,它们(同时在这两台计算机上暂时停止火鸟服务器服务)将security database从旧计算机复制到新计算机。它包含用户和密码。

或者,在获得所需用户名和密码列表后,您可以在新计算机上的Firebird中手动创建它们。

还有另一个可能的案子。用户和密码是“独立”Firebird服务器的一个特性(作为一个单独的特殊程序运行)。

也许SteamSoft是设计用来使用"Firebird Embedded“的,即一个库,它不是单独运行,而是嵌入到SteamSoft程序本身中。嵌入式Firebird根本没有任何用户和密码。如果出现这种情况,那么SteamSoft没有提供不存在的用户名和密码,但根本没有提供任何用户名和密码。然后,它可能会发现SteamSoft与非嵌入式版本的Firebird不兼容。但是,您只能查看SteamSoft文档或帮助台。

票数 2
EN

Stack Overflow用户

发布于 2019-03-16 10:08:46

第一个错误意味着您的数据库比Firebird安装的版本更新。通常最好使用备份和还原来在系统之间移动数据库。考虑到您已经解决了该错误,我只会指向为什么打开Firebird数据库时会出现磁盘上不受支持的结构错误?获得更多细节。

至于第二个错误,这意味着登录失败。要么用户不存在,要么使用错误的密码。默认的Firebird安装只附带一个用户:SYSDBA (取决于操作系统和安装程序,不管是密码masterkey还是随机生成的密码)。

您的应用程序可能需要一个特定的用户,并且如果Firebird将用户存储在一个单独的安全数据库中,那么该用户就不存在。找出该用户的用户名并创建它。

您可以通过两种方式在Firebird 2.5中创建用户:

  1. 使用SQL用户管理语句: 创建用户密码;提交;

这需要SYSDBA访问(或具有安全数据库中管理员权限的用户)。

  1. 使用命令行工具gsec (由于支持SQL用户管理语句而不再推荐Firebird 3) -user sysdba -password添加-pw
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55166130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档