gpt4 book ai didi

sql-server - 如何在 SQL Server Always Encrypted 列上使用 Like 运算符?

转载 作者:行者123 更新时间:2023-12-02 00:38:09 27 4
gpt4 key购买 nike

请帮助我修复 SQL Sever 2016 中的以下查询,其中列 FIRST_NAME、LAST_NAME 始终被加密。

SELECT * FROM MY_TABLE
WHERE (LAST_NAME LIKE '%[@,#,$,%,*]%' OR LAST_NAME LIKE '%,%')
OR (FIRST_NAME LIKE '%[@,#,$,%,*]%' OR FIRST_NAME LIKE '%,%');

我收到以下错误,因为列始终是加密的,而且我无法声明变量并将字符串分配给它。

Msg 206, Level 16, State 2, Line 1
Operand type clash: varchar(50) encrypted with (encryption_type = 'DETERMINISTIC', encryption_algorithm_name = 'AEAD_AES_256_CBC_HMAC_SHA_256', column_encryption_key_name = 'CEK_POC_CERTSTORE', column_encryption_key_database_name = 'UIM-LOCAL-DB') collation_name = 'Latin1_General_BIN2' is incompatible with varchar

最佳答案

不幸的是,如果 FIRST_NAME 和 LAST_NAME 始终加密,则您无法使用 LIKE 运算符搜索字符串。

查询可以对使用确定性加密加密的列执行相等比较,但不能执行其他操作(例如,大于/小于、使用 LIKE 运算符的模式匹配或算术运算)。

引用:https://learn.microsoft.com/en-us/sql/relational-databases/security/encryption/always-encrypted-database-engine

关于sql-server - 如何在 SQL Server Always Encrypted 列上使用 Like 运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48465185/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com