User/group association

From: Casey Allen Shobe <cshobe(at)secureworks(dot)net>
To: pgsql-admin(at)postgresql(dot)org
Subject: User/group association
Date: 2002-10-20 21:13:05
Message-ID: 200210201713.05705.cshobe@secureworks.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

I'm working on a users view for my database (what I have so far can be found
below), and I was wondering how postgres associates users with groups, as
there is no grosysid column in pg_user. I would like to display information
like so:

Username: Primary Group: Other Groups:
-----------------------------------------------------------------------
cshobe Administrators Security Operations, Development
[etc.]

See the question marks below for an in-context request.

Any help is greatly appreciated,

- Casey

create view "users" as
select ps."usesysid" as "UID",
ps."usename" as "Username",
ps."passwd" as "Password",
coalesce (
(
select cast (p."position_name" as varchar)
from only "positions" as "p"
where p."position_id" = (
select cast (ui."info_value" as integer)
from only "user_info" as "ui"
inner join only "user_info_types" as "uit"
on uit."type_id" = ui."info_type_id"
where uit."info_type" = 'Position ID'
and uit."info_type_name" = 'Default'
and ui."user_id" = ps."usesysid"
)
),
'Undefined'
) as "Position",
coalesce (
(
select cast (pg."groname" as varchar)
from only "pg_group" as "pg"
where pg."grosysid" = (
????????where do I get this from?????????
)
),
'Undefined'
) as "Group",
coalesce (
(
select cast (ui."info_value" as integer)
from only "user_info" as "ui"
inner join only "user_info_types" as "uit"
on uit."type_id" = ui."info_type_id"
where uit.info_type = 'Creator ID'
and uit.info_type_name = 'Default'
and ui."user_id" = ps."usesysid"
),
0
) as "Creator ID",
coalesce (
(
select cast (ui."info_value" as varchar)
from only "user_info" as "ui"
inner join only "user_info_types" as "uit"
on uit."type_id" = ui."info_type_id"
where uit.info_type = 'E-Mail'
and uit.info_type_name = 'Work'
and ui."user_id" = ps."usesysid"
),
'None'
) as "Work E-Mail Address",
coalesce (
(
select cast (ui."info_value" as varchar)
from only "user_info" as "ui"
inner join only "user_info_types" as "uit"
on uit."type_id" = ui."info_type_id"
where uit.info_type = 'Extension'
and uit.info_type_name = 'Work'
and ui."user_id" = ps."usesysid"
),
'None'
) as "Extension",
coalesce (
(
select cast (ui."info_value" as varchar)
from only "user_info" as "ui"
inner join only "user_info_types" as "uit"
on uit."type_id" = ui."info_type_id"
where uit.info_type = 'Telephone'
and uit.info_type_name = 'Home'
and ui."user_id" = ps."usesysid"
),
'None'
) as "Home Telephone",
coalesce (
(
select cast (ui."info_value" as varchar)
from only "user_info" as "ui"
inner join only "user_info_types" as "uit"
on uit."type_id" = ui."info_type_id"
where uit.info_type = 'Telephone'
and uit.info_type_name = 'Mobile'
and ui."user_id" = ps."usesysid"
),
'None'
) as "Mobile Telephone"
from only "pg_shadow" as "ps"
where ps."usesysid" > 100
order by "UID";

--
Casey Allen Shobe / Network Security Analyst & PHP Developer
SecureWorks, Inc. / 404.327.6339 x169 / Fax: 404.728.0144
cshobe(at)secureworks(dot)net / http://www.secureworks.net
Content is my own and does not necessarily represent my company.

Browse pgsql-admin by date

  From Date Subject
Next Message Pandurang 2002-10-21 08:00:21 Optimizing DB Permormanance
Previous Message Tom Lane 2002-10-19 03:13:20 Re: Are statistics gathered on function indexes?