强哥审计触发器
postgres-audit-triggers的Python项目详细描述
Postgres通过触发器审核数据库
此应用程序通过触发器设置Postgres审核数据库。 见https://wiki.postgresql.org/wiki/Audit_trigger_91plus 和https://github.com/2ndQuadrant/audit-trigger/ 更多信息。
安装
pip install postgres_audit_triggers
用法
- 将
postgres_audit_triggers
应用添加到INSTALLED_APPS
中,然后再添加到任何要审核的应用:
# settings.py
INSTALLED_APPS = {
'django.contrib.postgres',
'postgres_audit_triggers',
...
}
- 安装
postgres_audit_triggers
中间件:
# settings.py
MIDDLEWARE = [
...
'postgres_audit_triggers.middleware.AuditMiddleware',
]
此中间件将向审核行添加元数据。要发送元数据,客户端必须发送
Postgres-Audit-Triggers-Meta
对django视图的请求中的头。里面的数据
该头必须是可序列化到python字典的json。
运行迁移:
python manage.py migrate postgres_audit_triggers
将
audit_trigger = True
添加到要审核的模型的模型元选项:
# models.py
class MyAuditedModel(models.Model):
...
class Meta:
audit_trigger = True
...
- 进行迁移:
python manage.py makemigrations
- 运行迁移:
python manage.py migrate
触发器引入性能开销。在某些情况下,您可能需要在 执行批量操作。若要关闭所有触发器,将提供一个装饰器:
from postgres_audit_triggers.decorators import disable_triggers
@disable_triggers
def foo():
# auditing will not be triggered on any database operations performed here
Bar.objects.bulk_create(items)