我刚刚安装了 Win64 版 Firebird,并且尝试连接到用 ISQL 预打包的员工数据库。按照Firebird官方的步骤进行操作快速入门指南 https://www.firebirdsql.org/file/documentation/html/en/firebirddocs/qsg3/firebird-3-quickstartguide.html,我打开 ISQL 实用程序并输入:
connect localhost:employee user sysdba password masterkey;
结果我得到:
语句失败,SQLSTATE = 28000
您的用户名和密码未定义。请您的数据库管理员设置 Firebird 登录。
最奇怪的是,如果我导航到员工数据库示例本身并从那里发出 isql 命令,我就可以成功连接。
不同之处在于,直接连接到数据库文件不需要密码,它甚至会忽略密码,而只使用提供的用户来知道要应用哪些权限。
如果没有主机名,ISQL 将默认使用 Firebird 嵌入模式,而不是服务器。要进行比较,请尝试使用isql employee.fdb
(or isql employee
),它只会使用您当前的操作系统用户名登录,而isql localhost:employee
将失败并显示“您的用户名和密码未定义”。
看起来您指定的密码与 masterkey 的默认密码不同,或者不知何故 sysdba 帐户未初始化。我记得早期 Firebird 3 版本的安装程序存在问题,但我认为 3.0.2 不应受此影响(或者至少:它对我有用)。
如果 SYSDBA 帐户未初始化,请按照 Firebird 3 发行说明 部分的步骤操作初始化安全数据库 https://www.firebirdsql.org/file/documentation/release_notes/html/en/3_0/rnfb30-compat-initsec.html:
初始化步骤
初始化是在嵌入模式下使用isql公用事业。
对于嵌入式连接,不需要身份验证密码
如果您提供的话,将会被忽略。嵌入式连接将
无需登录凭据即可正常工作,并使用您的主机“登录”
如果省略用户名,则为凭据。然而,即使用户
名称不受身份验证、创建或修改任何内容的影响
在现有的安全数据库中要求用户是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 服务器。现在您将能够对数据库执行网络登录,
包括安全数据库,使用您分配的密码
系统数据库管理员。
其中“SomethingCryptic”应该是您的密码。
如果创建了 SYSDBA 用户,如果您忘记了所设置的内容,则需要更改其密码。遵循相同的步骤,但在步骤 3 中执行以下操作:
SQL> alter user SYSDBA set password '<new password>';
SQL> commit;
SQL> quit;
如果出现错误“未找到用户的记录:SYSDBA”,确保您确实以 SYSDBA 身份连接,否则重试原始步骤 3。没有管理员访问权限将表现为用户不存在,因此如果用户确实不存在,或者如果您与非特权用户连接。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)