SQL Server 2014中的列级数据加密

时间:2015-06-17 17:47:27

标签: sql encryption sql-server-2014 database-security

我需要加密SQL Server 2014中多个表中的几个列级数据。在阅读了一篇关于加密来自microsoft论坛的数据列的文章后,我有点困惑。我是否需要在表中为加密数据创建新列?我的意思是可以加密现有列而不是为加密数据创建新列吗?说A列有一个我需要加密的信用卡信息。根据该文章,需要创建将存储加密的信用卡信息的B列。是否可以对A列进行加密,而不是创建额外的B列。 感谢

1 个答案:

答案 0 :(得分:0)

几乎在所有情况下,您都必须为加密数据创建新列。加密数据作为varbinary类型存储在SQL Server中。明文数据几乎总是在varchar或其他一些字符类型中。在您的情况下,您的ColumnA可能是varchar(16)或类似的东西,而ColumnB可能是varbinary(128)。

加密过程完成后,您可以而且应该删除原始列,否则您仍会面临大多数安全风险。如果愿意,还可以将包含敏感数据密文的新varbinary类型列重命名为原始列名。请记住,它现在以密文而不是原始明文来保存数据。

如果您的源类型也是varbinary并且有足够的长度来存储新加密的数据,那么您可以进行就地加密,但如果您改变主意或在代码中或之后发现代码中存在错误,则存在风险执行,你没有快速&简单的方法来退出变化。当您加密时,您也无法进行并排测试/验证。最后,您可能不会有太多需要加密的varbinary列。希望如此。