sql - 在 SQL Server 的 ENCRYPTBYKEY 函数中选择查询
问题描述
我正在尝试通过打开对称密钥来解密表列并将其存储在不同的表中,我发现以下查询是错误的:
create table dbo.Secrets (
Secret varbinary(400)
)
go
create view dbo.openSecrets
as
select cast(decryptbykey(Secret) as varchar(200)) as OpenSecret
from dbo.Secrets
go
open symmetric key [SymKey]
DECRYPTION BY CERTIFICATE [SymCert]
go
insert into dbo.Secrets (Secret)
values (ENCRYPTBYKEY(KEY_GUID('SymKey'), (select col_test from dbo.tbltest)));
select *
from dbo.openSecrets;
close symmetric key [SymKey];
select *
from dbo.openSecrets;
我看到的错误是:SQL Server 子查询返回超过 1 个值。当子查询跟随 =、!=、<、<=、>、>= 时,这是不允许的
问题在于这一行:
values (ENCRYPTBYKEY(KEY_GUID('SymKey'), (select col_test from dbo.tbltest)));
预期输出:
这应该是选择语句进出解密的输出。
但我不知道修复内部选择语句。有什么帮助吗?!
解决方案
推荐阅读
- c# - vs解决方案的nuget还原失败
- python - Python嵌套if语句在input()之后无法输出值
- visual-studio-code - 如何在 VSCode 中禁用虚拟文件的问题?
- c# - 同时移动两个表格
- mysql - 我无法连接 MySQL。关注留言:
- javascript - Laravel View - 编辑页面获取带有选项触发值的选择表单以打开输入字段
- html - 如何在占位符框中插入电子邮件信封图标?
- html - 将 div 框集中到中间和内部文本,与屏幕大小无关
- elasticsearch - 将第一个滤波器的输出组合为第二个滤波器的输入
- jooq - 如何执行 Jooq 代码重新生成?