Subject Re: [firebird-support] Permission denied with qli and isql
Author Helen Borrie
At 09:35 PM 9/07/2012, Ted Miglautsch wrote:
>Mark Rotteveel wrote:
>>
>>
>> On Sun, 08 Jul 2012 23:38:34 +0400, Ted Miglautsch
>> <theomigs@... <mailto:theomigs%40migmar.com>>
>> wrote:
>> > Several different users need to run the commands. There can be as many
>> > as 3 users on a system and they each have several databases in their own
>>
>> > directory off of their home directory. None of them are firebird and I
>> > do not want all of them to be logging in as root.

If those client-local databases are not Firebird ones, why is this relevant? To log in to a Firebird database, no user needs to be root. A Firebird client negotiates a connection with a Firebird host server. The databases must all be physically located on that host server's hard drives.

What model of Firebird 2.5 server is running on the host machine? (Superserver/Classic/Superclassic).


>Accessing the databases through the tcp/ip connection is way too slow.
>Their programs read and write billions of records as quickly as
>possible. I was disappointed when IB eliminated the shared memory
>connection to the database engine. It was faster than the pipe
>connection. The tcp/ip connection is even slower.

On POSIX platforms with Firebird you have exactly two choices: a network connection using TCP/IP and the network client (libfbclient.so) or a direct connection to a database located on the same machine as the client, using libfbembed.so.

Firebird should create (or restore) databases with the FILE owner firebird/firebird. Only a Firebird server can *open* a Firebird database file - even libfbembed.so contains a server. You cannot make non-TCP/IP connections using libfbclient.so.

>I tried adding the users to the firebird group but still the same
>"Permission denied" error. I tried having the database owned by either
>the user and firebird. It did not matter.

If the databases really are Firebird databases, or IB of ODS 10.0 or lower, then that tells us that you are trying to use the wrong client library. It is very unclear from your messages, whether you are attempting embedded connections (Classic installed, local application having access to libfbembed.so) or network connections (Classic, Superclassic or Superserver installed, local application using libfbclient.so).

>I remember that with IB 2007
>the user no longer owned the database. It was root.

I have no clue as to your history with InterBase but it is irrelevant to your problem. IB 2007 is not Firebird. If the databases were created (or restored) by IB 2007 then no version of Firebird can open them.

./heLen