我正在运行在localhost上的OSX10.10上运行最新的firebird 2.5-26780 SuperClassic
。
以前,我一直在运行SuperServer并决定迁移到SuperClassic,因为这是我们的应用程序更理想的操作模型。我很困惑,发现它似乎与SuperServer有非常不同的权限结构。
使用SuperServer
- 我能够使用isql和C-api直接连接到我的用户拥有的firebird数据库,并具有常规用户权限。
我改为SuperClassic
后 - 我无法再直接连接数据库了。尝试使用isql yeilds直接连接:
Statement failed, SQLSTATE = 28000
cannot attach to password database
我现在需要通过localhost连接。此外,数据库现在必须由firebird用户拥有。最后,即使将自己添加到firebird组,我也需要使用超级用户权限通过isql等工具连接到数据库。
这些更改听起来是否正确/必要? SuperClassic firebird服务器是否需要一些额外的配置步骤?虽然上面的步骤让我起步,但他们觉得有些笨拙。
答案 0 :(得分:1)
您似乎错误地安装和/或配置了Firebird SuperClassic。
当您通过TCPIP连接字符串连接时(即,以服务器名称启动,在本例中为“localhost”),您实际上是在与Firebird实例建立网络连接,并使用自己的权限访问数据库文件(如果Firebird在“firebird”用户下运行,数据库也将在“firebird”下运行。
一般来说,如果您正在开发多用户客户端 - 服务器应用程序(我想是这样,除非您不需要SuperClassic),这种方法更正确 - 一切都在firebird用户下运行。
尝试将isql作为firebird用户运行,它也应该使用本地路径。