【问题标题】:Column level data encryption in SQL Server 2014SQL Server 2014 中的列级数据加密
【发布时间】:2015-06-17 17:47:26
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-18
      • 2020-07-12
      • 2018-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多