强哥审计触发器

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 Spinner选定值未上载到firebase数据库   java如何通过bukkit中的配置添加消息?   java在SharedReference中保存列表的泛型类型   javascript Java小程序未定义   swt在Java中构建控制台应用程序   java OAuth同意屏幕没有突然显示,没有错误?   java webview选择文件安卓不工作   java Spring boot JPA如何从同一连接添加多个数据库?   java JDBC DB2驱动程序计时器线程处于阻塞状态   java我在vscode中运行flatter时看到一个错误在phone中运行应用程序somone能否帮助我plz   Java:生成JSON:如何避免生成不完整的JSON   java Date compareTo()方法始终返回1   当使用Junit runner运行测试时,java Spring自动连线失败   java Android/Sockets如何将信息从主UI线程发送到socket线程?   java Android内存声明全局变量   java如何在JBoss中拥有多个具有相同JNDI名称的数据源?   python在Java中嵌入CPython时,为什么会挂起?   java如何提供深度模拟对象?   java“find:smallint,expected:integer”Hibernate对informix数据库的验证在短时间内失败