On 15 May 2015 at 10:56, Pavel Stehule <pavel.stehule@gmail.com> wrote: > Hi > > I am testing it, and output is strange > > 2015-05-15 11:49:25.046 CEST pavel postgres: LOG: AUDIT: > SESSION,1,1,DDL,DROP TABLE,,,drop table foo;,<not logged> > 2015-05-15 11:49:25.046 CEST pavel postgres: STATEMENT: drop table foo; > 2015-05-15 11:49:28.291 CEST pavel postgres: LOG: AUDIT: > SESSION,2,1,DDL,CREATE TABLE,,,"CREATE TABLE foo(a int, b int);",<not > logged> > 2015-05-15 11:49:28.291 CEST pavel postgres: STATEMENT: CREATE TABLE foo(a > int, b int); > 2015-05-15 11:49:31.486 CEST pavel postgres: LOG: AUDIT: > SESSION,3,1,WRITE,INSERT,,,"INSERT INTO foo VALUES(10,20);",<not logged> > 2015-05-15 11:49:31.486 CEST pavel postgres: STATEMENT: INSERT INTO foo > VALUES(10,20); > 2015-05-15 11:49:33.446 CEST pavel postgres: LOG: AUDIT: > SESSION,4,1,READ,SELECT,,,SELECT * FROM foo WHERE a = 10;,<not logged> > 2015-05-15 11:49:33.446 CEST pavel postgres: STATEMENT: SELECT * FROM foo > WHERE a = 10; > > I am missing object name, unexpected string <not logged> > > configuration: > pg_audit.log = 'read, write, ddl'
From what I can tell, that last value should be for parameters. You'd need to set pg_audit.log_parameter to on, and then prepare and execute a statement with a parameter.
yes
2015-05-15 12:18:39.545 CEST pavel postgres: LOG: AUDIT: SESSION,1,1,READ,PREPARE,,,prepare x(int) as select * from foo where a = $1;,<none> 2015-05-15 12:18:39.545 CEST pavel postgres: STATEMENT: prepare x(int) as select * from foo where a = $1; 2015-05-15 12:18:48.065 CEST pavel postgres: LOG: AUDIT: SESSION,2,1,READ,SELECT,,,prepare x(int) as select * from foo where a = $1;,10 2015-05-15 12:18:48.065 CEST pavel postgres: STATEMENT: execute x(10);
but when pg_audit.log_parameter is off, then this value should be empty