如何在保留数据库行以进行审计时使其无效?

时间:2014-06-05 12:51:23

标签: database

我的数据库表包含许多加密的密钥(敏感信息)。这些密钥通过ID字段与用户相关联。在任何时候,我可能需要通过更新其ID字段使用户无效,使其不再可识别。但是,我不想从数据库中完全删除该行。相反,我想保留它用于审计目的。

我可以遵循一个共同的约定,或者只是添加一个字符串,其中包含足够的随机内容以使ID字段无效?

E.g

无效请求前的表

| ID      | KEY        |
------------------------
| user123 | yiuy321ui  | 

无效请求后的表

| ID                   | KEY        |
--------------------------------------
| legacy_79878_user123 | yiuy321ui  | 

2 个答案:

答案 0 :(得分:2)

更新用户ID实际上并不是一种非常好的方法。你想要的是能够再说“这个用户不活跃”了,所以在你的用户表上有一个Active位字段似乎是有意义的。

您可能需要更新代码以验证用户,以便仅检查“活动”用户,但从长远来看这将更容易(如果需要,还可以更轻松地重新启用用户)

答案 1 :(得分:2)

我会避免动态使用任何表的任何ID字段。它不仅违反了约定和最佳实践,而且您可能会破坏与该字段上查找/加入的其他表的关联。我建议在表中添加一个简单的布尔字段,并将该字段设置为true或false以保持用户的有效性。