Always Encrypted/SS 2017 和 ASP Classic,除了读取操作之外的任何问题

问题描述

始终加密/SS 2017 和 ASP Classic。对于那些仍在管理 ASP/VBscript 应用程序的少数人来说,这篇文章让我们了解了我现在所处的位置...... How to read SQL Always-encrypted column from classic ASP

我的 ODBC Driver 17 在我的 ASP 的指示下成功解密了我的 AE 加密列!

但是,到目前为止,我在尝试执行以下操作时遇到了以下错误(显然是相当常见的错误):

  1. 使用我现有的 vbScript/sql
  2. “验证”用户
  3. 使用我现有的 vbScript/sql添加记录”或
  4. 使用 SSMS“更改加密列的大小”。

Microsoft OLE DB Provider for ODBC Drivers 错误“80040e07” [Microsoft][ODBC Driver 17 for sql Server][sql Server]操作数类型冲突:varchar 与使用 (encryption_type = 'DETERMINISTIC',encryption_algorithm_name = 'AEAD_AES_256_CBC_HMAC_SHA_256',column_encryption_key_name_key_name_key_data_encryption_key_name_加密的 varchar(8000) 不兼容'XXXX_db') collat​​ion_name = 'sql_latin1_General_CP1_CI_AS'

在确认 AE 应该通过多种资源支持我的需求后(“使用确定性加密允许相等搜索”),

我认为这与以下内容有关:

  1. AE 将加密列的“排序规则”更改为 latin1_General_BIN2...

  2. 我的加密列“nvarchar(15)”可能在我声明时被解释为 varchar(8000) (15)...

  3. 一些基本的东西,当我的 ASP 试图呈现原始数据时,用我的驱动程序加密,进行相等比较或插入到加密列......

我在 AE 上花了很多时间,非常感谢任何指导或支持?总之,帮助。

解决方法

好的,谢谢你的帮助!对于那些找到此主题并需要答案的人...以上是 3) 一些基本内容。

确保您传递的是“可变参数”而不是输入值或其他内容。从 A 到 B 的简单修复解决了我的问题。

A) MM_rsUser_cmd.Parameters.Append MM_rsUser_cmd.CreateParameter("param2",200,1,15,Request.Form("pwd"))

乙) PwdVar = Request.Form("pwd") MM_rsUser_cmd.Parameters.Append MM_rsUser_cmd.CreateParameter("param2",PwdVar)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...