marcospmsantos-mec/audit-bundle

为symfony2和doctrine ORM提供的审计包,记录任何数据库更改

安装: 6

依赖项: 0

建议者: 0

安全性: 0

星标: 0

关注者: 0

分支: 63

类型:symfony-bundle

v0.1.20 2020-11-16 15:30 UTC

README

此包为所有与doctrine ORM数据库相关更改创建审计日志

  • 包括插入、更新以及它们的差异和关联字段差异。
  • 多对多关系更改,关联和解关联操作。
  • 如果token存储中有用户,则将其链接到日志。
  • 审计条目在flush过程中以同一事务插入,如果失败则状态保持清洁。

基本上,您可以通过这些日志条目跟踪任何通过标准ORM操作管理的更改。

注意:审计无法跟踪DQL或直接SQL更新或删除语句的执行。

安装

首先,使用composer安装它

composer require data-dog/audit-bundle

然后,将其添加到您的AppKernel包中。

// app/AppKernel.php
public function registerBundles()
{
    $bundles = array(
        ...
        new DataDog\AuditBundle\DataDogAuditBundle(),
        ...
    );
    ...
}

最后,使用Doctrine迁移包创建包使用的数据库表

使用Doctrine Migrations Bundle

php app/console doctrine:migrations:diff
php app/console doctrine:migrations:migrate

使用Doctrine Schema

php app/console doctrine:schema:update --force

演示

要查看功能,最好的方法是查看实际演示。只需克隆该包并运行

make

访问https://:8000/audit以查看日志操作。

演示应用程序源代码位于example目录中,它是一个基本的symfony应用程序。

使用方法

audit实体将自动映射,如果您运行模式更新或类似操作。之后,所有数据库更改都将反映在审计日志中。

未审计的实体

有时,您可能不希望为特定实体创建审计日志条目。您可以通过在config.yml中列出这些实体在unaudited_entities配置键下实现此操作,例如

data_dog_audit:
    unaudited_entities:
        - AppBundle\Entity\NoAuditForThis

指定审计实体

有时,您也可能只想为特定实体创建审计日志条目。您可以通过类似于未审计实体的方式实现。您可以在config.yml中的audited_entities配置键下列出它们,例如

data_dog_audit:
    audited_entities:
        - AppBundle\Entity\AuditForThis

您可以选择审计或未审计的实体。如果两者都指定,则只考虑审计实体。

伪装

有时,您可能还想将责任归咎于impersonator用户而不是impersonated用户。您可以通过在config.yml中添加blame_impersonator配置键来实现,例如

data_dog_audit:
    blame_impersonator: true

默认行为是将责任归咎于已登录用户,因此如果未明确声明,它将忽略impersonator

屏幕截图

所有分页审计日志:Screenshot

单击特定资源的引用历史:Screenshot

显示插入数据:截图

许可证

审计包是免费使用的,并且根据MIT许可证授权。