2015-05-15 12:37 GMT+02:00 Thom Brown <t...@linux.com>: > On 15 May 2015 at 11:20, Pavel Stehule <pavel.steh...@gmail.com> wrote: > > > > > > 2015-05-15 12:14 GMT+02:00 Thom Brown <t...@linux.com>: > >> > >> On 15 May 2015 at 10:56, Pavel Stehule <pavel.steh...@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 > > If it were empty, it would then be indistinguishable from a statement > executed with a single parameter passed as an empty string. >
I am thinking about situation when pg_audit.log_parameter is disabled > > Speaking of which, I notice that nulls show up as nothing too. How > does one distinguish between an empty string and a null in the logs? > it can use a COPY notation > > -- > Thom >