Subject Re: [Firebird-Architect] RDB$USERS Prospective Definition
Author Geoff Worboys
> Here is an adaptation of the security database table USERS:

Hi Jim et al,

Has anyone considered the need to have a user identifier that
is separate to the logon name?

That is; a mechanism that would reliably allow a user's logon
name to be changed without disrupting all the fields in the
database that may be carrying a copy of the logon name. For
long standing applications it is a significant PITA that a
users logon name cannot be changed (when people get married
or whatever).

For example the user could be defined with a UUID and that UUID
value could be what the database stores as the user identifier
instead of the user name. (Leave the old USER variable inplace
for backwards compatibility, but introduce a new USER_ID var
to allow applications to take advantage of the new feature.)

Of course the API would need to provide a mechanism for
translating between the UUID and the current value of the logon
name for application display purposes.

It seems to me that the plugin architecture could/should
support this concept (and UUID/GUID seems a sufficiently
generic way to do it).

In an old application I tried to achieve this requirement by
implementing two logon names for each user. They first was
used to read the second (static) name from the security
database and that second name was used for all connections to
actual application databases. It worked, sort of, but it would
be much neater if the idea was supported directly.

> create table rdb$users(
> rdb$user_name rdb$user_name not null primary key,
> rdb$sys_user_name rdb$user_name,

What is rdb$sys_user_name? I know its always been there but I
still dont know what it was for.

Geoff Worboys
Telesis Computing