Subject Re: linux, firebird embedded and $FIREBIRD_TMP
Author alexpeshkoff
--- In firebird-support@yahoogroups.com, Milan Babuskov <milanb@...> wrote:
>
> Vlad Khorsun wrote:
> > Nobody told that users need administrative privileges to work with FB
> > embedded v2.5.
>
> As I understand, when FIREBIRD_LOCK is removed, the only "solution" for
> multi-user access will be to add user to "firebird" group. One cannot do
> that without administrative privilege.
>
> Anyway, I call this "solution" because in such case users will be able
> to step on each others toes. When you have a database file which is
> owned by a user, and a lock owned by that user, and group has no access,
> then only that user has access - and he can run multiple applications on
> the same database simultaneously. It seems to me that removal of
> FIREBIRD_LOCK will be the end of this feature. Is this true?

Environment variables are supported and are planned to be supported. It will not be removed until we have reasonable replacement. Something like storing lock file name in database header.

> However, if both users are members of "firebird" group and group has r/w
> access to database and lock, then users can corrupt the database if they
> both access it at the same time. Is my understanding correct?

No. They can corrupt database file only if they use different lock files with same database. Always having lock files in same common directory is the best way to avoid such cases. In this aspect FIREBIRD_LOCK environment variable is unsafe, placing lock file name in DB header is much better solution.

> > Such privileges needed only at install time and when
> > new users created.
>
> If you have "embedded" application, why would you need to "install" it.
> You just unpack it to some directory in your $HOME and run it. With
> Firebird 2.0 you don't even need to have "firebird" group on the system.
> That's what I call "embedded" database.

And it was very easy to break database using multiple instances of it.

* -------------------------------------- *
* Let's move discussion to devel list - *
* this is not support question *
* -------------------------------------- *