【发布时间】:2020-10-14 15:47:41
【问题描述】:
我正在开发 mule 3.8 社区版, 我只是想将数据插入到 mssql 数据库中,该数据库的表启用了“始终加密”。 我在 mulesoft 数据库连接器的执行 dll 选项下编写了参数化查询。 我还在 mule-app.properties 中的连接字符串中提到了“columnEncryptionSetting=Enabled”
执行代码后出现以下错误。
Message : Encryption scheme mismatch for columns/variables '@deliveryheader_shiptotelephonenumber'. The encryption scheme for the columns/variables is (encryption_type = 'PLAINTEXT') and the expression near line '5' expects it to be (encryption_type = 'DETERMINISTIC', encryption_algorithm_name = 'AEAD_AES_256_CBC_HMAC_SHA_256', column_encryption_key_name = 'Column_data_encrypt', column_encryption_key_database_name = 'Encrypt_db') (or weaker). (com.microsoft.sqlserver.jdbc.SQLServerException).
Payload : {NullPayload}
Payload Type : org.mule.transport.NullPayload
Element : /encryptionpocFlow/processors/0 @ encryptionpoc:encryptionpoc.xml:20
Element XML : <db:execute-ddl config-ref="db_Sql_Configuration" doc:name="Database">
<db:dynamic-query>DECLARE @deliveryheader_shiptotelephonenumber varchar(30)='1234567890' DECLARE @deliveryheader_shiptoaddress_address1 varchar(100)='3807 ABCDE XYZS PKWY'
DECLARE @deliveryheader_shiptoaddress_address2 varchar(100)='SUITE 102' DECLARE @deliveryheader_shiptoaddress_city varchar(60)='PQRSE'
DECLARE @deliveryheader_shiptoaddress_county varchar(60)='LMNOP'
INSERT INTO [dbo].[encrypted_table] (deliveryheader_shiptotelephonenumber ,deliveryheader_shiptoaddress_address1,deliveryheader_shiptoaddress_address2 ,deliveryheader_shiptoaddress_city,deliveryheader_shiptoaddress_county) VALUES(@deliveryheader_shiptotelephonenumber,@deliveryheader_shiptoaddress_address1 ,@deliveryheader_shiptoaddress_address2,@deliveryheader_shiptoaddress_city ,@deliveryheader_shiptoaddress_county)</db:dynamic-query>
</db:execute-ddl>
--------------------------------------------------------------------------------
Root Exception stack trace:
com.microsoft.sqlserver.jdbc.SQLServerException: Encryption scheme mismatch for columns/variables '@deliveryheader_shiptotelephonenumber'. The encryption scheme for the columns/variables is (encryption_type = 'PLAINTEXT') and the expression near line '5' expects it to be (encryption_type = 'DETERMINISTIC', encryption_algorithm_name = 'AEAD_AES_256_CBC_HMAC_SHA_256', column_encryption_key_name = 'Column_data_encrypt', column_encryption_key_database_name = 'Encrypt_db') (or weaker).
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:258)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1535)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:845)
at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:752)....
如果我缺少任何东西或需要任何更改,请帮助我。
【问题讨论】:
标签: sql-server encryption mulesoft always-encrypted