'열 암호화'에 해당되는 글 1건

  1. 2013.11.20 Column Level 암호화
MS SQL2013.11.20 17:31

 

[내용]

 

SQL Server에는 다양한 암호화 방법이 있습니다. 중에서 Column Level 암호화에 대해 알아 보도록 하겠습니다.

Column Level 암호화는 Edition 관계없이 SQL Server 2005 부터 지원하기 시작했습니다.

 

 

 

[환경]

 

OS: Windows Server 2008 R2 Ent

Product: SQL Server 2008 R2 Ent with SP2

 

 

[ACTION PLAN]

 

SQL Server Management Studio 실행하고, 암호화할 해당 테이블을 확인해 봅니다. 

 

  

Jumin 열에 암호화를 걸도록 하겠습니다.

아래의 스크립트를 실행합니다.

--만약 데이터베이스 마스터 키가 없다면, 키를 생성 합니다.

CREATE MASTER KEY ENCRYPTION BY

PASSWORD = 'P@ssw0rd'

GO

 

스크립트로 생성된 마스터 키를 확인할 있습니다.

 

-- 인증서를 생성합니다.

CREATE CERTIFICATE JuminNum005

   WITH SUBJECT = 'Member Social Security Numbers';

GO

 

스크립트로 생성된 인증서를 확인할 있습니다.

 

-- 대칭키를 생성합니다.

CREATE SYMMETRIC KEY SSN_Key_01

    WITH ALGORITHM = AES_256

    ENCRYPTION BY CERTIFICATE JuminNum005;

GO

 

USE [etleeDB];

GO

 

-- 암호화된 데이터를 입력하기 위한 컬럼을 추가합니다.

ALTER TABLE dbo.memberTbl

    ADD EncryptedJumin varbinary(128);

GO

 

-- 데이터를 암호화 하기 위해 대칭키를 오픈합니다.

OPEN SYMMETRIC KEY SSN_Key_01

   DECRYPTION BY CERTIFICATE JuminNum005;

 

-- Jumin컬럼의 내용을 대칭키로 암호화합니다.

-- 암호화한 결과를 EncryptedJumin에 저장합니다.

UPDATE dbo.memberTbl

SET EncryptedJumin = EncryptByKey(Key_GUID('SSN_Key_01'), Jumin);

GO

 

-- 암호화 내용을 확인합니다.

Select * from dbo.memberTbl

 

-- 암호화된 내용이 쓸수 있는지 확인합니다.

-- 복호화를 하기 위해 대칭키를 오픈합니다.

OPEN SYMMETRIC KEY SSN_Key_01

   DECRYPTION BY CERTIFICATE Jumin005;

GO

 

-- 정상 복호화가 됬다면, Jumin열과 Decrypted ID Jumin이 동일해야 합니다.

SELECT Jumin, EncryptedJumin

    AS 'Encrypted Jumin Number',

    CONVERT(char, DecryptByKey(EncryptedJumin))

    AS 'Decrypted Jumin Number'

    FROM dbo.memberTbl;

GO

(결과)

 

 

[참고]

 

http://technet.microsoft.com/ko-kr/library/ms174382.aspx

http://msdn.microsoft.com/en-us/library/ms179331(v=sql.105).aspx

 

 

 

 

신고

'MS SQL' 카테고리의 다른 글

Deadlock  (1) 2013.12.13
UDL 파일로 SQL Server 연결 테스트  (0) 2013.12.03
Column Level 암호화  (0) 2013.11.20
[Test] SQL Server mdf file 파티션  (1) 2013.11.11
Indexed View(인덱싱된 뷰)  (0) 2013.11.04
SQL Server 2000에 Access mdb 연동 방법  (0) 2013.08.30
Posted by TM ~ing