Обсуждение: Database audit / Associating a statement with connection
I have some questions and would like help.
(1) Audit practice
Is there a good source of information about audit for postgresql
databases?
Specifically I'd like some advice on these:
(2) Associating a statement with a database connection
I'm logging statements and connections, but it seems the statement is not
associated with the connection in the log.
- log_connections = true
- log_statement = true
connection received: host=128.91.23.43 port=35644
query: SELECT ID, ....
Is there a way to associate them so I know which statement came from which
connection?
(3) Associating a web connection with a database connection
Also, if I have a web frontend for the database, what would be the best
practice to associate a statement with a particular web client IP?
For example, I have in the postgresql log
connection received: host=128.91.23.43 port=35644
where 128.91.23.43 is my web server.
The web server log records all client connections and accessed pages, but
I don't have a good method of associating the web client connections with
the database client connections.
I'd appreciate any pointers.
Regards,
Ben Kim
Database Developer/Systems Administrator
434E Harrington Tower / College of Education
Texas A&M University
Ben Kim <bkim@coe.tamu.edu> writes:
> Is there a way to associate them so I know which statement came from which
> connection?
Log the PID originating each message.
regards, tom lane
> > Is there a way to associate them so I know which statement came from which > > connection? > > Log the PID originating each message. Thanks. Ben Kim Database Developer/Systems Administrator 434E Harrington Tower / College of Education Texas A&M University
>Ben Kim <bkim@coe.tamu.edu> writes:
>> Is there a way to associate them so I know which statement came from which
>> connection?
> Log the PID originating each message.
> regards, tom lane
This is a follow up in addition to the log pid. It's a vanilla solution,
but we tried comments like this in the sql statements.
in perl:
$sql=$sql." -- IP=$ENV{REMOTE_ADDR},ID=$id,PAGE=$ENV{SCRIPT_FILENAME}";
or in jsp:
sql = "select ... from customers -- " + "url: " + request.getRequestURI()
+ " ip: " + request.getRemoteAddr();
This worked, and added the remote ip address and the page it came from
into the postgresql log nicely without needing a full setup. Till now we
didn't see a problem with it. Hoped someone might find this useful.
Regards,
Ben Kim
Database Developer/Systems Administrator
434E Harrington Tower / College of Education
Texas A&M University