0

让我们先从错误开始:

列/变量的加密方案不匹配。列/变量的加密方案是 (encryption_type = 'PLAINTEXT') 并且行 '3' 附近的表达式期望它是 (encryption_type = 'DETERMINISTIC', encryption_algorithm_name = 'AEAD_AES_256_CBC_HMAC_SHA_256', column_encryption_key_name = 'CEK_P_H', column_encryption_key_database_name = ' 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

为什么我收到查询错误?

我必须在 STORED PROCEDURE 中包含一些内容吗?

  1. 我在连接设置中包含了“Column Encryption Setting=Enabled”
  2. 我还为 AlwaysEncrypted 启用了参数化
  3. 密钥存储在本地机器上
  4. 我创建了 DETERMINISTIC 加密
  5. 使用 SSMS 17 的 SQL Server 2016 数据库引擎 - 这可能是个问题吗?

提前致谢

4

0 回答 0