Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 连接SQL Server 2016中始终加密的列_Sql Server_Sql Server 2016_Always Encrypted - Fatal编程技术网

Sql server 连接SQL Server 2016中始终加密的列

Sql server 连接SQL Server 2016中始终加密的列,sql-server,sql-server-2016,always-encrypted,Sql Server,Sql Server 2016,Always Encrypted,我正在尝试在SQL server 2016中连接始终加密的列,并得到以下异常。请帮忙 One: (ISNULL(SGTC.FIRST_NAME, '') + ' ' + ISNULL(SGTC.MIDDLE_INITIAL_NAME, '') + ' ' + ISNULL(SGTC.LAST_NAME, '')) AS CLAIMANT_NAME Two: SGTC.FIRST_NAME + '' + SGTC.MIDDLE_INITIAL_NAME + '' + SGTC.LAST_N

我正在尝试在SQL server 2016中连接始终加密的列,并得到以下异常。请帮忙

One:

(ISNULL(SGTC.FIRST_NAME, '') + ' ' + ISNULL(SGTC.MIDDLE_INITIAL_NAME, '') + ' ' + ISNULL(SGTC.LAST_NAME, '')) AS CLAIMANT_NAME 

Two:

SGTC.FIRST_NAME + '' + SGTC.MIDDLE_INITIAL_NAME + '' + SGTC.LAST_NAME AS CLAIMANT_NAME
错误信息如下所示:

Msg 206, Level 16, State 2, Line 2
Operand type clash: varchar(50) encrypted with (encryption_type = 'DETERMINISTIC', encryption_algorithm_name = 'AEAD_AES_256_CBC_HMAC_SHA_256', column_encryption_key_name = 'CEK_POC_CERTSTORE', column_encryption_key_database_name = 'ALWAYS-ENCRYPT-UIM-WV-DB') collation_name = 'Latin1_General_BIN2' is incompatible with varchar

不允许在加密列上串联。目前,加密列上唯一可能的操作是相等。这是因为SQL Server没有密钥

您可能必须在客户端应用程序中实现此逻辑

来自官方文件

确定性加密始终为以下对象生成相同的加密值: 任何给定的纯文本值。使用确定性加密允许 加密数据的点查找、相等联接、分组和索引 柱。但是,也可能允许未经授权的用户猜测 通过检查 加密列,特别是如果存在一小组可能的 加密值,如真/假或北/南/东/西区域。 确定性加密必须使用具有二进制2的列排序规则 字符列的排序顺序

随机加密使用一种以较少的时间加密数据的方法 可预测的方式。随机加密更安全,但可防止 对加密列进行搜索、分组、索引和联接


不允许在加密列上串联。目前,加密列上唯一可能的操作是相等。这是因为SQL Server没有密钥

您可能必须在客户端应用程序中实现此逻辑

来自官方文件

确定性加密始终为以下对象生成相同的加密值: 任何给定的纯文本值。使用确定性加密允许 加密数据的点查找、相等联接、分组和索引 柱。但是,也可能允许未经授权的用户猜测 通过检查 加密列,特别是如果存在一小组可能的 加密值,如真/假或北/南/东/西区域。 确定性加密必须使用具有二进制2的列排序规则 字符列的排序顺序

随机加密使用一种以较少的时间加密数据的方法 可预测的方式。随机加密更安全,但可防止 对加密列进行搜索、分组、索引和联接


遗憾的是,始终加密的列不支持串联。如果这是应用程序的一部分,则可以在解密后将应用程序中的列连接起来。遗憾的是,始终加密的列不支持连接。如果这是应用程序的一部分,可以在解密应用程序中的列后将它们连接起来。