问题描述:

Im running the latest firebird 2.5-26780 SuperClassic on OSX10.10 running on localhost.

Previously, I have been running SuperServer and decided to migrate over to SuperClassic, as that is a more desirable operating model for our application. I was befuddled to find out that it seems to have a very different permission structure than SuperServer.

With SuperServer-- I was able to connect directly to a firebird database, owned by my user, with regular user permissions using isql and the C-api.

After I changed to SuperClassic-- I was no longer able to connect to the database directly. Attempting to connect directly using isql yeilds:

Statement failed, SQLSTATE = 28000

cannot attach to password database

I now need to connect through localhost. Additionally, the database now must be owned by the firebird user. And finally, even after adding myself to the firebird group, I am required to use superuser privileges to connect to the database with tools like isql.

Do these changes sound correct/necessary? Is there some additional configuration steps that are required for the SuperClassic firebird server? While the above steps have me up and going, they feel a little clumsy.

网友答案:

It seems that you have incorrectly installed and/or configured Firebird SuperClassic.

When you connect through TCPIP connection string (i.e., started with server name, in this case it is "localhost"), you are actually establishing network connection with an instance of Firebird, and it accesses database files using own permissions (if Firebird is running under "firebird" user, databases also will be under "firebird").

In general, this approach is more correct if you are developing multi-user client-server application (I guess so, unless you would not need SuperClassic) - everything is running under firebird user.

Try to run isql as firebird user, it should work with local path too.

相关阅读:
Top