Re: Audit-trail engine: getting the application's layer user_id

Поиск
Список
Период
Сортировка
От Richard Huxton
Тема Re: Audit-trail engine: getting the application's layer user_id
Дата
Msg-id 462E4F82.7060005@archonet.com
обсуждение исходный текст
Ответ на Audit-trail engine: getting the application's layer user_id  ("Marcelo de Moraes Serpa" <celoserpa@gmail.com>)
Список pgsql-general
Marcelo de Moraes Serpa wrote:
> Here's what I need to do: Somehow save the user_id of the **application**
> user who have done the update/delete action to the log row.

> I've read an article on IBM's developer site which teaches how to do just
> that (get the application's user id and save it the audit
> row) using what they call the APPLICATION_ID which is an unique ID that DB2
> assigns to the app when it connects to the database.

Afraid there's nothing quite like that for PG.

There's two ways I've used.

1. Have a separate user (role in 8.2) for each application user (it can
be something like u_app_0001 etc). This is do-able for a few hundred
users certainly, and should be fine for a few thousand. Not sure about
hundreds of thousands though.

2. Simulate a "session variable" by having one of the procedural
languages store state for you (e.g. pl/tcl or pl/perl). Call
set_app_user(...) on application connect and call get_app_user() when
you need to find the current app user.

I've done both, but prefer the first myself.

--
   Richard Huxton
   Archonet Ltd

В списке pgsql-general по дате отправления:

Предыдущее
От: Alan Hodgson
Дата:
Сообщение: Re: WAL files, warm spares and minor versions
Следующее
От: Jorge Godoy
Дата:
Сообщение: Re: Audit-trail engine: getting the application's layer user_id