SQL Server 2008/2012를 사용하고 있는데 데이터베이스에 암호화 된 열이있는 테이블이 있습니다.
나는 암호화 된 컬럼의 암호화 키를 받고 이 쿼리를 사용하여 -
SELECT DISTINCT key_name(encryptedcol) FROM encryptedTable;
내 암호화 된 열 이름은 encryptedcol 입니다.
이제 암호화 된 키를 만드는 데 사용되는 인증서 이름을 얻고 싶습니다 (데이터를 해독하기 위해 위의 대칭 키를 여는 데 사용되는 인증서 이름이 필요함을 의미합니다).
예를 들면-
여기 강조 표시된 텍스트는 내 인증서 이름이며 여기에는 하드 코딩되어 있지만 SQL 쿼리에서 가져오고 싶습니다.
시스템 테이블을 사용하여 열의 암호화 계층을 결정할 수 있습니다. 대칭 키가 인증서로 암호화되었다고 가정하면이 tsql이 작동합니다. 대칭 키가 비대칭 키로 암호화 된 경우 sys.certificates를 고유하게 식별하는 지문 열도있는 sys.asymmetric_keys로 대체합니다.
select
c.name
from sys.symmetric_keys sk
join sys.key_encryptions ke
on
sk.symmetric_key_id= ke.key_id
join sys.certificates c
on
ke.thumbprint=c.thumbprint
where
sk.name in
(SELECT DISTINCT key_name(encryptedssn) FROM HR.Employees)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다