Doug,
> But what if the user calls the access function, sees the data, then
> issues a ROLLBACK? The audit record would be rolled back as well (as
> Tom pointed out earlier).
>
> You could use dblink to log to a separate audit database, I suppose.
Or just write to some other non-transational resource, like a text file. That
would require the use of an external "untrusted" PL, though (like PL/PerlU,
PL/sh or PL/PythonU)
--
Josh Berkus
Aglio Database Solutions
San Francisco