데이터베이스 개발자 Tip & 강좌

SQLER의 개발자들이 만들어가는 데이터베이스 사용자 Tip & 강좌 게시판입니다. SQL서버, Oracle, MySQL 등 여러 클라우드/오픈소스 기반 데이터베이스 개발 및 운영 관련 팁과 쿼리 노하우를 이곳에서 가장 먼저 접하실 수 있습니다. 많은 도움 되시길 바랍니다.

SQL Server 마스터 키 관리

jevida(강성욱) 2016.09.14 06:47 Views : 1743

SQL Server 마스터 키 관리

 

  • Version : SQL Server 2005, 2008, 2008R2, 2012

 

SQL Server는 계층적 암호화 및 키 관리 인프라로 데이터를 암호화 한다. 각 계층은 인증서, 비대칭 키 및 대칭 키 조합을 사용하여 해당 계층의 하위 계층을 암호화 한다.

 

[SQL Server 2005]

암호화 계층의 각 계층이 해당 계층 아래의 계층을 암호화하는 것을 보여 준다. 최상위 계층인 서비스 마스터키는 Windows DP API로 암호화 된다.

암호화 메커니즘

  • 인증서
  • 비대칭 키
  • 대칭 키

 

 

[SQL Server 2008 이상]

비대칭 키 및 대칭 키를 SQL Server의 외부모듈에 저장할 수 있다. 계층의 시작 부분에 대한 액세스도 암호화로 보호 된다.

암호화 메커니즘

  • Transact-SQL 함수
  • 비대칭 키
  • 대칭 키
  • 인증서
  • 투명한 데이터 암호화

 

 

 

[데이터베이스의 마스터 키를 생성하는 방법]

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password'

 

  • PASSWORD = 'password' : 마스터 키를 암호화 하는데 사용되는 암호 이다. Password는 SQL Server의 인스턴스를 실행하는 컴퓨터의 Windows 암호 정책 요구 사항을 따라야 한다.

 

 

[마스터 키 백업]

데이터베이스의 마스터 키가 생성되면 오프 사이트, 안전한 위치로 백업해야 한다. 백업시에는 다음 구문을 사용한다.

BACKUP MASTER KEY TO FILE = 'path_to_file'

ENCRYPTION BY PASSWORD = 'password'

 

  • FILE = 'path_to_file' : 마스터 키를 내보낼 파일에 대한 파일 이름을 포함한 전체 경로를 지정한다. 경로는 로커 또는 네트워크에 위치한 UNC 경로일 수 있다.
  • PASSWORD = 'password' : 파일의 마스터 키를 암호화 하는데 사용되는 암호이다.

 

 

[마스터키 복원]

백업 파일로부터 데이터베이스의 마스터 키를 가져 온다.

RESTORE MASTER KEY FROM FILE = 'path_to_file'

DECRYPTION BY PASSWORD = 'password'

ENCRYPTION BY PASSWORD = 'password'

[ FORCE ]

 

  • FILE = 'path_to_file' : 지정된 마스터 키에 대해 파일 이름을 포함한 전체 경로 지정.
  • DECRYPTION BY PASSWORD = 'password' : 파일로부터 가져올 마스터 키의 암호를 해독하는데 필요함 암호 지정.
  • ENCRYPTION BY PASSWORD = 'password' : 데이터베이스 마스터 키를 로드한 다음 암호화하는 데 사용되는 암호를 지정.
  • FORCE : 현재 데이터베이스 마스터 키가 열려 있지 않거나 SQL Server가 이 키로 암호화된 일부 개인 키의 암호를 해독 할 수 없는 경우에도 RESOTRE 프로세스가 계속 되도록 지정.

 

 

데이터 암호화에 사용한 키를 안전한 곳에 백업하는 것은 매우 중요하다.

 

[참고링크]

암호화 계층 : http://msdn.microsoft.com/ko-kr/library/ms189586(v=sql.110).aspx

마스터 키 생성, 백업, 복원 : http://technet.microsoft.com/ko-kr/library/ms174382.aspx

 



강성욱 / jevida@naver.com

Microsoft SQL Server MVP

Blog : http://sqlmvp.kr

Facebook : http://facebook.com/sqlmvp

No. Subject Author Date Views
1730 SQL Server에서 Trigger 활성 / 비활성 감시 jevida(강성욱) 2016.09.14 1466
1729 DDL Trigger를 이용한 데이터베이스 변경 사항 추적 jevida(강성욱) 2016.09.14 1230
1728 Trigger를 이용한 SQL Server 커넥션 풀링 확인 jevida(강성욱) 2016.09.14 1088
1727 SQL Server Trigger jevida(강성욱) 2016.09.14 934
1726 인덱스에 대한 SORT_IN_TEMPDB 옵션 jevida(강성욱) 2016.09.14 846
1725 인덱스 DDL 작업의 디스크 공간 요구 사항 jevida(강성욱) 2016.09.14 912
1724 XML nodes() 함수를 이용한 OPENXML 교체 jevida(강성욱) 2016.09.14 945
1723 XQuery를 사용한 XML 데이터 업데이트 jevida(강성욱) 2016.09.14 1871
1722 BCP XML 파일 형식 jevida(강성욱) 2016.09.14 1253
1721 SQL Server로 데이터 가져오기 jevida(강성욱) 2016.09.14 1223
1720 SQL Server Stored Procedure 암호화 jevida(강성욱) 2016.09.14 2676
1719 SQL Server 대칭키 vs 비대칭키 암호화 jevida(강성욱) 2016.09.14 1685
» SQL Server 마스터 키 관리 jevida(강성욱) 2016.09.14 1743
1717 대칭키를 사용하여 SQL Server 암호화(열 수준) 하기 jevida(강성욱) 2016.09.13 5642
1716 DMV를 사용하여 누락된 인덱스 확인 jevida(강성욱) 2016.09.13 1341
1715 DMV를 이용한 SQL Server 대기 상태 확인 jevida(강성욱) 2016.09.13 3749
1714 DMV를 이용한 SQL Server 성능 카운터 확인 jevida(강성욱) 2016.09.13 1770
1713 DMV를 이용한 SQL Server IO 성능 모니터 스냅샷 만들기 jevida(강성욱) 2016.09.13 1243
1712 DMV를 활용한 SQL Server 모니터링 jevida(강성욱) 2016.09.13 1258
1711 세션에 따른 캐시된 쿼리 플랜 설정 확인 jevida(강성욱) 2016.09.13 866





XE Login