Thread:

From
"Stephen Martin"
Date:
Hello,
How can one differential between apparently duplicated usernames?
For example I have a postgres id 'www' present within my pg_shadow/pg_user.
I recently installed a package and inadvertantly created another 'www' user.
I have managed to remove the duplicate user by deleting it from pg_shadow by
identifying it via its usesysid field.

How can I

1) Ensure I canot in future create duplicate names?
2) If duplicate users are possible by what other means can the  various instances of them be referenced?

Stephen

----------------------------------------------
010000C9



RE: [INTERFACES] Date: Sat, 26 Feb 2000 17:01:55 -0800

From
"Stephen Martin"
Date:
Hello,
as a post script to this..
Under normal circumstances one cannot add
another user of the same name (phew!:) )
I think this was the result of a setup
script
writing directly into pg_shadow and pg_user;

Stephen

----------------------------------------------
010000C9

-----Original Message-----
From: owner-pgsql-interfaces@postgreSQL.org
[mailto:owner-pgsql-interfaces@postgreSQL.org]On Behalf Of Stephen
Martin
Sent: Saturday, February 26, 2000 5:00 PM
To: pgsql-interfaces@postgreSQL.org
Subject: [INTERFACES] Date: Sat, 26 Feb 2000 17:01:55 -0800


Hello,
How can one differential between apparently duplicated usernames?
For example I have a postgres id 'www' present within my pg_shadow/pg_user.
I recently installed a package and inadvertantly created another 'www' user.
I have managed to remove the duplicate user by deleting it from pg_shadow by
identifying it via its usesysid field.

How can I

1) Ensure I canot in future create duplicate names?
2) If duplicate users are possible by what other means can the  various instances of them be referenced?

Stephen

----------------------------------------------
010000C9


************



Re: [INTERFACES] Date: Sat, 26 Feb 2000 17:01:55 -0800

From
Tom Lane
Date:
"Stephen Martin" <stephen@sealteam.demon.co.uk> writes:
> For example I have a postgres id 'www' present within my pg_shadow/pg_user.
> I recently installed a package and inadvertantly created another 'www' user.

> How can I
> 1) Ensure I canot in future create duplicate names?

There should probably be a unique index on pg_shadow's usename field,
and another one on the usesysid field (otherwise there's not a unique
map from sysids to users, which is bad since we use sysids as
referential keys in other tables).

I'm surprised this hasn't been pointed out before :-(

I'm not sure how difficult it would be to do it.  Just creating
an index with CREATE INDEX will not work, because pg_shadow is
an installation-wide table and its index must be as well.  There's
some routine somewhere in the backend that would have to be taught
about the index.
        regards, tom lane