2011-12-15 76 views
0

我有一些表格,在一个过程中的一些最后步骤后,不会被修改。用于验证的Sybase哈希+ convert(varchar,...)?

为了验证它没有做任何修改(在最终状态之后)我正在考虑制作所有列的散列。因此,对于每一行我:

  1. 做一个varchar将所有列(其他数据类型转换);
  2. 保存散列结果

今后,为了验证,我只是再做一次哈希和先前得到的结果进行比较。


有没有更好的方法来做到这一点?

如果不是,将所述其他数据类型时为varchar,我应该使用convert(varchar, ...)或取决于数据的类型我应该定义一个长度到varchar

回答

1

就个人而言,如果我采取了这种方法,我会使用时间戳字段而不是散列。这将自动更新任何发生在该行上的事情,并且比您描述的更容易。

验证方法与您在问题中描述的类似。为了使审计更容易,您可以使用触发器将时间戳记值存储到另一个表中。

或...说到触发器。如果您的真正意图是完全阻止更新,则可以使用触发器完全取消更新(除非它满足您设置的特定要求)。

这都假设你有一个理由,不仅仅是通过撤消所有用户的更新/删除权限来锁定桌面上的权限。 (这将是最简单的)。

+0

humm,验证如何工作?我是否需要将时间戳字段放在另一个表中,然后比较两者?还是有另一种方式? – 2011-12-16 00:07:19