我刚刚安装了Firebird for Win64,我正在尝试连接到预装ISQL的员工数据库。
按照Firebird官方 QuickStart 文档中的步骤,我打开了ISQL实用程序并输入:
connect localhost:employee user sysdba password masterkey;
结果我得到了:
Statement failed, SQLSTATE = 28000
Your user name and password are not defined. Ask your database administrator to set up a Firebird login.
答案 0 :(得分:2)
不同之处在于直接连接到数据库文件不需要密码,它甚至会忽略密码,只需使用提供的用户知道要应用哪些权限。
如果没有主机名,ISQL将默认使用Firebird嵌入模式,而不是服务器。要进行比较,请尝试使用isql employee.fdb
(或isql employee
),它将使用您当前的操作系统用户名登录,而isql localhost:employee
将失败并显示“您的用户名和密码未定义”。
您似乎指定了与默认masterkey不同的密码,或者某种方式未初始化sysdba帐户。我记得早期的Firebird 3版本的安装程序有问题,但我不认为3.0.2应该受此影响(或者至少:它对我有用)。
如果未初始化SYSDBA帐户,请按照Firebird 3发行说明的步骤Initializing the Security Database部分执行:
初始化步骤
使用 isql 实用程序在嵌入模式下执行初始化。 对于嵌入式连接,不需要验证密码 如果您提供一个,将被忽略。嵌入式连接将 没有登录凭据工作正常,并使用您的主机“登录” 如果省略用户名,则为凭据。但是,即使是用户 name不受身份验证,创建或修改任何内容 在现有的安全数据库中要求用户为SYSDBA; 否则, isql 将为CREATE USER抛出特权错误 请求。
SQL用户管理命令适用于任何打开的数据库。 因为示例数据库
employee.fdb
存在于您的 安装并已在databases.conf
中别名,很方便 将它用于用户管理任务。
停止Firebird服务器。 Firebird 3积极地缓存与安全数据库的连接。服务器连接的存在可能 阻止 isql 建立嵌入式连接。
在合适的shell中,启动 isql 交互式会话,通过其别名打开员工数据库:
> isql -user sysdba employee
创建SYSDBA用户:
SQL> create user SYSDBA password 'SomethingCryptic'; SQL> commit; SQL> quit;
- 醇>
要完成初始化,请再次启动Firebird服务器。现在您将能够执行网络登录数据库, 包括安全数据库,使用您指定的密码 SYSDBA。
'SomethingCryptic'应该是您的密码。
如果创建了SYSDBA用户,如果您不再记住自己设置的内容,则需要更改其密码。按照相同的步骤,但在步骤3中执行:
SQL> alter user SYSDBA set password '<new password>';
SQL> commit;
SQL> quit;
如果这导致错误“找不到用户的记录:SYSDBA”,请确保您确实以SYSDBA身份连接,否则请重试原始步骤3.没有管理员访问权限的行为就像用户不存在,因此如果用户确实不存在,或者如果您与非特权用户建立连接,则错误相同。
答案 1 :(得分:0)
CONNECT&#39;员工&#39;用户&#39; SYSDBA&#39;密码&#39; masterkey&#39;;
你需要确保你的alias.conf有这样的东西:employee = C:/examplepath/employee.fdb 确保firebird的服务在