SQL 服务器:始终加密(尝试在加密列中插入值时出现数据类型冲突错误)
SQL Server : Always Encrypted (Datatype clash error whe trying to insert value in an encrypted column)
我创建了一个包含两列 (id, name)
的 table。使用 AlwaysEncrypted
加密 id
列,但现在当我尝试在 id
列中输入值时,它会抛出此错误:
Operand type clash: int is incompatible with int encrypted with (encryption_type = 'DETERMINISTIC', encryption_algorithm_name = 'AEAD_AES_256_CBC_HMAC_SHA_256', column_encryption_key_name = 'CEK_Auto1', column_encryption_key_database_name = 'TEST_PS')
我能做什么?
从错误消息来看,它似乎在尝试将明文插入到列中,但它需要一个加密值。
确保对该列的 INSERT 包含参数(非明文)并且客户端连接字符串包含 "Column Encryption Setting=enabled"。如果您使用的是 SSMS,请确保在您的查询选项中启用 "Parameterization for Always Encrypted",并且在同一行执行变量声明和赋值。有关详细信息,请参阅下面的 link。
我创建了一个包含两列 (id, name)
的 table。使用 AlwaysEncrypted
加密 id
列,但现在当我尝试在 id
列中输入值时,它会抛出此错误:
Operand type clash: int is incompatible with int encrypted with (encryption_type = 'DETERMINISTIC', encryption_algorithm_name = 'AEAD_AES_256_CBC_HMAC_SHA_256', column_encryption_key_name = 'CEK_Auto1', column_encryption_key_database_name = 'TEST_PS')
我能做什么?
从错误消息来看,它似乎在尝试将明文插入到列中,但它需要一个加密值。
确保对该列的 INSERT 包含参数(非明文)并且客户端连接字符串包含 "Column Encryption Setting=enabled"。如果您使用的是 SSMS,请确保在您的查询选项中启用 "Parameterization for Always Encrypted",并且在同一行执行变量声明和赋值。有关详细信息,请参阅下面的 link。