Можно ли создать журнал пользователя PostgreSQL, удалить пользователя и изменить его права доступа?
Да, добавьте в свой postgresql.conf и перезапустите (или просто перезагрузите) сервер db:
log_statement = 'ddl'
Это работает с операторами createuser, dropuser wrappers, CREATE / DROP ROLE / USER и ALTER ROLE / USER, как я проверял:
2011-05-23 14:40:45 CEST STATEMENT: DROP ROLE thomas;
2011-05-23 14:40:52 CEST LOG: statement: CREATE ROLE greg LOGIN CREATEDB;
2011-05-23 14:42:36 CEST LOG: statement: ALTER ROLE greg NOCREATEDB;
log_statement (enum) - контролирует, какие операторы SQL регистрируются. Допустимые значения: none (выкл.), Ddl, mod и all (все операторы). ddl регистрирует все операторы определения данных, такие как операторы CREATE, ALTER и DROP.
http://www.postgresql.org/docs/current/static/runtime-config-logging.html#GUC-LOG-STATEMENT
Есть один недостаток в том, что у вас также регистрируются другие операторы DDL.