Auditing DDL changes

This recipe shows you how you can collect Data Definition Language (DDL) from database logs in order to audit changes to the database structure.

Getting ready

Edit your postgresql.conf file to set the following:

log_statement = 'ddl'

Setting it to mod or all is also OK for this. Don't forget to reload the configuration:

/etc/init-d/postgresql reload

How to do it…

Now find all occurrences of the CREATE, ALTER, and DROP commands in the log:

postgres@hvost:~$ egrep -i "create|alter|drop" \ /var/log/postgresql/postgresql-9.4-main.log

If log rotation is in effect, you may need to use grep on older logs as well.

If the available logs are too new, and you haven't saved the older logs in some other place, you are out of luck.

The default ...

Get PostgreSQL 9 Administration Cookbook - Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.