尝试插入表时出现AlwaysEncrypted Column错误

时间:2019-01-31 16:08:16

标签: stored-procedures encryption sql-server-2017 always-encrypted parameterization

首先让错误开始:

列/变量的加密方案不匹配。列/变量的加密方案为(encryption_type ='PLAINTEXT'),第'3'行附近的表达式期望它为(encryption_type ='DETERMINISTIC',encryption_algorithm_name ='AEAD_AES_256_CBC_HMAC_SHA_256',column_encryption_key_name ='CEK_P_base Payments_Hub')(或更弱)

我试图在使用存储过程的情况下使用AlwaysEncrypt加密插入一列:

“ PARAMETER_VALUE”列是加密列

CREATE PROCEDURE dbo.SP_UI_Parameter    
(
@ID int OUTPUT,
@OPERATION_ID int,
@PARAMETER_NAME varchar(100),
@PARAMETER_METRIC varchar(100),
@PARAMETER_VALUE varchar(100) 
)
AS
BEGIN

IF @ID IS NULL
BEGIN

INSERT INTO [dbo].[TOKEN_PARAMETER] (OPERATION_ID,
PARAMETER_NAME, PARAMETER_METRIC, PARAMETER_VALUE)

SELECT @OPERATION_ID, @PARAMETER_NAME, @PARAMETER_NAME, @PARAMETER_VALUE

SET @ID = SCOPE_IDENTITY()

END
ELSE
BEGIN

UPDATE [dbo].[TOKEN_PARAMETER] SET
OPERATION_ID = @OPERATION_ID,
PARAMETER_NAME = @PARAMETER_NAME,
PARAMETER_METRIC = @PARAMETER_METRIC,
PARAMETER_VALUE = @PARAMETER_VALUE

END

END
GO

为什么我会收到查询错误?

存储过程中是否必须包含某些内容?

  1. 我在连接设置中包括了“列加密设置=已启用”
  2. 我还为AlwaysEncrypted启用了参数化
  3. 密钥存储在本地计算机上
  4. 我已经创建了确定性加密
  5. 使用SSMS 17的SQL Server 2016数据库引擎-这可能是一个问题吗?

预先感谢

0 个答案:

没有答案