Запрос выбора внутри функции ENCRYPTBYKEY на сервере SQL - PullRequest
1 голос
/ 02 мая 2019

Я пытаюсь расшифровать столбец таблицы и сохранить его в другой таблице, открыв симметричный ключ, и нахожу приведенный ниже запрос ошибочным:

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)));

Ожидаемый результат:

enter image description here

Это должен быть вывод для операторов выбора в и из расшифровки.

Но я не знаю, как исправить внутренний оператор выбора. Любая помощь?!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...