Обсуждение: User Context Variables

Поиск
Список
Период
Сортировка

User Context Variables

От
Shawn Garbett
Дата:
I need to trap some audit information in PostgreSQL.
Currently we have it working Oracle and it stores the
authenticated user in the sys_context so that a
trigger just does a "select userenv('client_info')
from dual;" and all the necessary magic is handled.
The reasons for this are complex, it involves
connection pooling, detached web sessions, etc. It's a
very elegant solution when using Oracle.

I'm having trouble figuring out how to do it in
PostgreSQL. So what I need is a way to save a single
value in a connection for a set of triggers to use
that is only valid during a transaction. A place to
store a user variable like sys context would work, a
temporary table would work, or some mysterious
function that did the equivalent would work. I can't
figure out if these are possible under PostgreSQL.

Shawn

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around
http://mail.yahoo.com

Re: User Context Variables

От
Keith Worthington
Дата:
Shawn Garbett wrote:
> I need to trap some audit information in PostgreSQL.
> Currently we have it working Oracle and it stores the
> authenticated user in the sys_context so that a
> trigger just does a "select userenv('client_info')
> from dual;" and all the necessary magic is handled.
> The reasons for this are complex, it involves
> connection pooling, detached web sessions, etc. It's a
> very elegant solution when using Oracle.
>
> I'm having trouble figuring out how to do it in
> PostgreSQL. So what I need is a way to save a single
> value in a connection for a set of triggers to use
> that is only valid during a transaction. A place to
> store a user variable like sys context would work, a
> temporary table would work, or some mysterious
> function that did the equivalent would work. I can't
> figure out if these are possible under PostgreSQL.
>
> Shawn

Shawn,

How about using current_user and session_user?

http://www.postgresql.org/docs/8.0/interactive/functions-info.html

--
Kind Regards,
Keith