- 용어 정리
- 서비스 마스터 키 (SMK) : SQL Server 인스턴스가 시작되고 각 데이터베이스에서 연결된 서버 암호, 자격 증명 및 데이터베이스 마스터 키를 암호화하는 데 사용될 때 처음으로 자동 생성
- 데이터베이스 마스터 키 (DMK) : 데이터베이스에 있는 비대칭 키와 인증서의 프라이빗 키를 보호하는 데 사용되는 대칭 키
- SMK - DMK - 인증서 - 대칭키 로 암호화
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '암호'
GO
SELECT NAME, IS_MASTER_KEY_ENCRYPTED_BY_SERVER FROM SYS.DATABASE WHERE NAME LIEK 'DB명%'
CREATE CERTIFICATE 인증서명 WITH SUBJECT = '인증서제목'
SELECT * FROM DB명.SYS.CERTIFICATES;
CREATE SYMMETRIC KEY 대칭키명 WITH ALGORITHM = AES_256
ENCRYPTION BY CERTIFICATE 인증서명
SELECT * FROM DB명.SYS.SYMMETRIC_KEYS
- 데이터 암호화 및 복호화
OPEN SYMMETRIC KEY 대칭키명 DECRYPTION BY CERTIFICATE 인증서명
GO
CREATE TABLE TBL_TEST (NAME VARCHAR(50), ENC_NAME VARBINARY(256))
GO
INSERT INTO TBL_TEST
VALUES ('HELLO WORLD', EncryptByKey(Key_GUID('대칭키명'), 'HELLO WORLD'))
GO
SELECT NAME, DecryptByKey(ENC_NAME) FROM TBL_TEST
GO
CLOSE SYMMETRIC KEY 대칭키명
GO