【问题标题】:How to encrypt and decrypt nvarchar(max) in SQL Server如何在 SQL Server 中加密和解密 nvarchar(max)
【发布时间】:2020-09-12 18:43:21
【问题描述】:

我需要加密列nvarchar(max),当我编写选择查询时会自动解密列值,就像在 SQL Server 2016 中始终加密一样。

始终加密的 SQL Server 不支持nvarchar(max)

【问题讨论】:

    标签: sql-server encryption


    【解决方案1】:
    始终加密支持

    NVARCHAR(MAX)。不支持以下数据类型。

    Always encrypted MSDN

    使用以下数据类型之一的列:xml、 时间戳/行版本、图像、ntext、文本、sql_variant、hierarchyid、 地理、几何、别名、用户定义类型。

    对于数据的加密,您有多种选择:

    select empid , SSN , SSNEncrypted , 
    convert(varchar,DECRYPTBYKEY(SSNEncrypted) ) 
    [Decrypted SSN] from employees  WHERE EMPID = 1
    
    select empid , SSN from employees  WHERE EMPID = 1 -- Here, SSN is decrypted on the fly. transparent to user
    
    using (SqlCommand cmd = connection.CreateCommand())
    {
       cmd.CommandText = @"SELECT empid , SSN from employees WHERE EMPID = 1";
    cmd.ExecuteNonQuery();
    }
    

    【讨论】:

      猜你喜欢
      • 2015-08-26
      • 1970-01-01
      • 2011-04-29
      • 2011-01-10
      • 2011-09-23
      • 2011-01-10
      • 2010-09-15
      • 2021-10-05
      • 1970-01-01
      相关资源
      最近更新 更多