代码之家  ›  专栏  ›  技术社区  ›  Rosstified

如何在审核日志中记录不同的身份验证类型(基于用户名/密码和令牌)

  •  1
  • Rosstified  · 技术社区  · 14 年前

    我的系统有两种类型的用户,一种是具有用户名/密码的普通用户,另一种是通过OAuth授权的帐户(即使用令牌标识符)。为每个系统存储的信息是完全不同的,由不同的子系统管理。但是,它们确实与系统中相同的表/数据交互,因此我需要维护审计跟踪,不管是人工用户还是基于令牌的用户修改了数据。

    我现在的解决方案是有一个叫做 可审计身份 ,然后让从该表继承的两个类型(要么在单个表中,要么作为两个单独的表,具有1到1 pk的auditableIdentity。所有操作都将对createdby、modifiedby等列使用通用的auditableidentity pk。

    审计列没有任何FK约束,因此任何文本都可以插入其中,但我希望有一种简单的方法来轻松确定是人为还是系统进行了更改,加入一个AuditableIdentity表似乎是一种干净的方法?

    对于这种情况,是否有最佳实践?这是解决问题的一种适当方法吗?或者,您不必费心使用公共表,以后只需依赖联接(到两个单独的不相关的用户/令牌表)来确定哪个用户类型匹配哪些审计记录?

    1 回复  |  直到 14 年前
        1
  •  0
  •   edosoft    14 年前

    带有一个父表和两个具有1-1 pk-fk关系的子表的解决方案工作正常。您可以向AuditableIdentity表添加一个额外的字段,指示该行是标记标识还是NormalIdentity。

    AuditableIdentity的pk是所有审计跟踪的密钥。