强哥审计触发器

postgres-audit-triggers的Python项目详细描述


Postgres通过触发器审核数据库

此应用程序通过触发器设置Postgres审核数据库。 见https://wiki.postgresql.org/wiki/Audit_trigger_91plushttps://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)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在Java中,我需要读取一个文本文件,并将每一行放在一个单独的数组中。但每次我读文本文件时,我都无法拆分行   SpringJavaservlet返回不正确的用户代理   java如何在spring测试中动态设置环境变量   绑定后的java关闭通道   java我想在设置方法中使用selenium执行多用户登录操作,我没有使用testng。xml我正在使用maven pom。仅xml   java foreach 2d数组分配   我想用java编写prim算法   java如何在Spring Boot中验证Rest请求   JavaJScrollPane问题   java将一个节点与另一个节点关联起来   java获取错误:范围内无法访问Polyline类型的封闭实例   字节[]到int,反之为java