【发布时间】:2019-04-15 11:47:19
【问题描述】:
我想在 pgAdmin-4(3.0 版)上有一个审计跟踪,关于哪个用户运行哪个查询。我已将 pgAdmin 的配置设置为显示所需的日志,但是它不显示当前连接的 pgAdmin 用户或当前 DB 用户。它只显示记录器名称,即 pgadmin。日志示例:
2019-04-15 11:38:56,769: SQL pgadmin: Execute (async) for server #8 - CONN:2363996 (Query-id: 780067):
select * from my_table limit 5;
2019-04-15 11:38:57,135: SQL pgadmin: Polling result for (Query-id: 780067)
2019-04-15 11:38:57,136: SQL pgadmin: Execute (dict) for server #8 - DB:mydb_development (Query-id: 5477805):
这是我尝试过的pgAdmin的配置(config_local.py):
DEBUG = False
CONSOLE_LOG_LEVEL = 30
FILE_LOG_LEVEL = 25
CONSOLE_LOG_FORMAT = '%(asctime)s: %(levelname)s\t%(name)s:\t%(message)s'
FILE_LOG_FORMAT = '%(asctime)s: %(levelname)s\t%(name)s:\t%(message)s'
LOG_FILE = '/var/log/pgadmin/pgadmin4.log'
我想要的是能够打印当前使用的 pgAdmin 用户,或者如果无法完成,只需打印当前的 DB 用户。
例子:
2019-04-15 11:38:56,769: SQL my_pgadmin_user: Execute (async) for server #8 - CONN:2363996 (Query-id: 780067):
select * from my_table limit 5;
或
2019-04-15 11:38:56,769: SQL my_postgres_user: Execute (async) for server #8 - CONN:2363996 (Query-id: 780067):
select * from my_table limit 5;
感谢任何帮助。谢谢
【问题讨论】:
-
我认为 pgAdmin4 不可能,但您可以通过向 pgadmin4 开发人员pgadmin.org/support/list987654321@ 发送电子邮件来确认
-
感谢您的回复。我通过修改 pgadmin4 代码找到了解决方案。我在下面发布了我的解决方案。
标签: python logging pgadmin-4 audit-trail