是否可以让 PostgreSQL 记录用户创建、用户删除和用户权限的改变?
答案1
是的,添加您的 postgresql.conf 并重新启动(或只是重新加载)数据库服务器:
log_statement = 'ddl'
据我检查,它适用于 createuser、dropuser 包装器、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 (枚举) - 控制记录哪些 SQL 语句。有效值为 none (关闭)、ddl、mod 和 all (所有语句)。ddl 记录所有数据定义语句,例如 CREATE、ALTER 和 DROP 语句。
http://www.postgresql.org/docs/current/static/runtime-config-logging.html#GUC-LOG-STATEMENT
有一个缺点,那就是您还记录了另一个 DDL 语句。