Re: Pg_catalog reference - Mailing list pgsql-general

From Richard Huxton
Subject Re: Pg_catalog reference
Date
Msg-id 475D0AA6.80801@archonet.com
Whole thread Raw
In response to Pg_catalog reference  (Anton Nikiforov <anton@nikiforov.ru>)
List pgsql-general
Anton Nikiforov wrote:
> Dear all,
> i'm trying to create tables using pg_user (pg_authid) as a foreign key
> for my table. I need to log and control that only registered users can
> modify data and i want to control data changes via logging triggers. I
> need to know who exactly was modifying data. To be more exact i want to
> create a trigger that can log user information into the a table. I want
> to have a way to make rollbacks of high level data (documents...whatever).
>
> But when i'm trying to create a constraint referencing pg_catalog tables
> - i'm getting an error.

Irritating, isn't it? You can't attach triggers to system tables, and
that means no foreign-key references.

> What you consider to be a solution in thi case?

The best I've come up with is to have an app_user table that you *can*
have foreign keys referencing and have triggers on that keep pg_user
up-to-date.

It's not perfect - as a sysadmin you can go in and delete pg_user rows
while app_user assumes they're still there. In practice, it seems to
work well enough though.

--
   Richard Huxton
   Archonet Ltd

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: Simpler dump?
Next
From: Richard Huxton
Date:
Subject: Re: Problems with acessing xml functions on other database