암호화 구성하기
암호화 및 복호화가 SQL Server에 의해 자동으로 수행됨
- 데이터 페이지는 자동으로 암호화된 후 디스크에 작성되고 메모리로 읽어 들일 때 자동으로 복호화됨
- 데이터 암호화 및 복호화 수행을 위한 오버헤드가 발생하게됨.
- 사용자와 응용 프로그램은 전혀 관여하지 않음
(데이터를 사용하는 응용 프로그램에 대한 수정 불 필요)
[1.Database 생성하기]
CREATE DATABASE [DataEncrypt]
Go
USE [DataEncrypt]
Go
CREATE LOGIN [usrsm] WITH PASSWORD = 'Password!(*&(*&434565'
CREATE USER [usrsm] FOR LOGIN [usrsm]
Go
CREATE TABLE [dbo].[CreditCards]( CardId INT PRIMARY KEY ,
CardNumber varbinary(256) )
Go
[2.마스타키 생성하기]
USE [DataEncrypt]
go
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'test_DB_Master_key_password!%$#$%@$#@'
go
[3.마스터키로 보호되는 인증서 만들기]
CREATE CERTIFICATE [certSM]
WITH SUBJECT = 'SM Certificate'
Go
[4.인증서를 사용해 데이터베이스 암호화 키 만들기]
CREATE SYMMETRIC KEY [symmKeySM]
WITH ALGORITHM = TRIPLE_DES
ENCRYPTION BY CERTIFICATE [certSM]
go
[5.암호화키 OPEN]
OPEN SYMMETRIC KEY [symmKeySM] DECRYPTION BY CERTIFICATE [certSM]
Go
[6.테스트 Data 입력]
INSERT INTO [dbo].[CreditCards]
VALUES ( 1, encryptbykey(key_guid( 'symmKeySM'), N'4388-1234-1234-1234'))
INSERT INTO [dbo].[CreditCards]
VALUES ( 2, encryptbykey(key_guid( 'symmKeySM'), N'4549-5678-5678-5678'))
GO
[7.암호화 되어 있는지 확인]
SELECT * FROM [dbo].[CreditCards]
[8.원 Data확인]
SELECT CardId,
convert( NVARCHAR(100), decryptbykey( CardNumber )) as 'Card Number'
FROM [dbo].[CreditCards]
[9. 암호화키 close]
CLOSE SYMMETRIC KEY [symmKeySM]