我有一个客户数据库,当我在演示文稿中使用它时,为了安全起见,我想混淆一些敏感数据。这样做的最佳方法是什么。
我总是可以编写一个脚本来使用 NewID() 或类似的东西更新列,但是有没有更好的方法来做到这一点。
我在网上研究,发现动态数据屏蔽是一种方法,但不幸的是它在 SQL Server Express 上不可用。
任何想法都非常感谢。
我有一个客户数据库,当我在演示文稿中使用它时,为了安全起见,我想混淆一些敏感数据。这样做的最佳方法是什么。
我总是可以编写一个脚本来使用 NewID() 或类似的东西更新列,但是有没有更好的方法来做到这一点。
我在网上研究,发现动态数据屏蔽是一种方法,但不幸的是它在 SQL Server Express 上不可用。
任何想法都非常感谢。
您可以在表上创建视图。在视图中仅包括非敏感列。不要在视图中包含敏感列。
对数据库中的所有表执行此操作。
使用视图而不是基表进行演示。
不要更新数据,因为这会修改数据。
您可以随时保留视图。
如果表中的所有列都是敏感的,或者,您创建的视图可以包括使用(用户定义的)数据库函数打乱数据的列。例如,如果您有数字列,则视图可以使用产生不同数据的函数(例如:f(x) = 2x + 5)。您还可以对日期列和字符串列使用相同的技术。对于后者,您可以通过编写一个随机混合字符的数据库函数来简单地打乱数据。
根据所持有的数据,您可能不需要比以下更复杂的东西,例如:
UPDATE CUSTOMER
SET Name = 'David D Davidson', Address = 'House 1, ...';