在SQL Server Express 2016中,混淆表中列的最佳方法是什么

在SQL Server Express 2016中,混淆表中列的最佳方法是什么,sql,sql-server,obfuscation,sql-server-2016-express,Sql,Sql Server,Obfuscation,Sql Server 2016 Express,我有一个客户数据库,当我在演示中使用它时,为了安全起见,我想混淆一些敏感数据。 这样做的最佳方式是什么 我总是可以编写一个脚本,用NewID或类似的东西更新一个列,但是有更好的方法吗 我在网上进行了研究,发现动态数据屏蔽是实现这一点的一种方法,但不幸的是,它在SQLServerExpress上不可用 非常感谢您的任何想法 根据所保存的数据,您可能不需要比以下内容更复杂的内容,例如: UPDATE CUSTOMER SET Name = 'David D Davidson', Address =

我有一个客户数据库,当我在演示中使用它时,为了安全起见,我想混淆一些敏感数据。 这样做的最佳方式是什么

我总是可以编写一个脚本,用NewID或类似的东西更新一个列,但是有更好的方法吗

我在网上进行了研究,发现动态数据屏蔽是实现这一点的一种方法,但不幸的是,它在SQLServerExpress上不可用


非常感谢您的任何想法

根据所保存的数据,您可能不需要比以下内容更复杂的内容,例如:

UPDATE CUSTOMER
SET Name = 'David D Davidson', Address = 'House 1, ...';
可以在表上创建视图。在视图中仅包括非敏感列。不要在视图中包含敏感列

对数据库中的所有表执行此操作

使用视图而不是基表进行演示

不要更新数据,因为那样会修改数据

您可以在需要时保留视图


或者,如果表中的所有列都是敏感的,则您创建的视图可以包括使用用户定义的数据库函数对数据进行加扰的列。例如,如果您有数字列,视图可以使用生成不同数据的函数,例如:fx=2x+5。您还可以对日期列和字符串列使用相同的技术。对于后者,您可以编写一个随机混合字符的数据库函数,简单地对数据进行置乱。

为什么您要在现场演示中使用产品表来向您不想真正拥有数据或周期的人演示?这是一个用另一个问题回答问题的经典示例。我的团队已经解决了客户遇到的性能问题,我们正在进行scrum回顾,我们想展示已经做出了哪些改进,需要使用这个数据库。有可能一些利益相关者会加入进来,因此只是试图通过混淆数据来确保安全。因此,使用基准测试作为展示,而不是实际的原始数据库返回。或者只是在输出中屏蔽最终结果,但展示数据检索速度。或者克隆您拥有的数据库,并在新数据库上编写一个1次数据扰码器。我的意思是,你问了一个愚蠢的问题,没有足够的数据来回答你在演示文稿中的需求,并且想知道为什么你会得到半途而废的回答。@MasonStedman,事实上,演示的用例是合法的。该应用程序包含一些敏感数据。开发人员希望展示数据,但不想展示实际值。因此,可以在演示的一组视图中对数据进行加扰。如果您不想只隐藏端点,唯一的方法是创建一个临时数据库并提前对数据进行加扰。如果您试图展示效率,则不希望在运行时使用函数。如果您有几百个表,并且希望保留数据,则这将不理想。如果您希望恢复原始数据,您会怎么做。我会使用临时数据库进行演示,而不是使用实时数据库,因此如上所述更新字段不会导致任何数据丢失。如果您的目标是展示效率,您可能不想使用函数。。。