분류 전체보기 1385

SQL Server 대칭키 vs 비대칭키 암호화

SQL Server 대칭키 vs 비대칭키 암호화 Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server 암호화는 데이터를 보호하기 위해 관리자가 사용할 수 있는 여러 가지 방어 중 하나이다. 암호화 알고리즘은 사용자가 무단으로 쉽게 바꿀 수 없는 데이터 변환을 정의 한다. SQL Server에서는 DES, Triple DES, TRIPLE_DES_3KEY, RC2, RC4, 128bit RC4, DESX, 128bit AES, 192bit AES, 256bit AES 등을 지원한다.(SQL Server 버전에 따라 지원되는 알고리즘이 다르다.) 알고리즘의 일반 적인 특징으로는 강력한 암호화는 일반적으로 약한 암호화 보다 더 많은 CPU 리소스를 사용한다. 짧..

SQL Server 마스터 키 관리

SQL Server 마스터 키 관리 Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server는 계층적 암호화 및 키 관리 인프라로 데이터를 암호화 한다. 각 계층은 인증서, 비대칭 키 및 대칭 키 조합을 사용하여 해당 계층의 하위 계층을 암호화 한다. [SQL Server 2005] 암호화 계층의 각 계층이 해당 계층 아래의 계층을 암호화하는 것을 보여 준다. 최상위 계층인 서비스 마스터키는 Windows DP API로 암호화 된다. 암호화 메커니즘 인증서 비대칭 키 대칭 키 [SQL Server 2008 이상] 비대칭 키 및 대칭 키를 SQL Server의 외부모듈에 저장할 수 있다. 계층의 시작 부분에 대한 액세스도 암호화로 보호 된다. 암호화 메커니즘 T..

대칭키를 사용하여 SQL Server 암호화(열 수준) 하기

대칭키를 사용하여 SQL Server 암호화(열 수준) 하기 Version : SQL Server 2008, 2008R2, 2012 개인 정보에 대한 중요성이 강화 되면서 개인을 식별 할 수 있는 데이터에 대해서는 모두 암호화를 하도록 법적으로 강제 되고 있다. 테이블에 저장된 데이터를 암호화하는 여러 방법이 있지만 SQL Server의 대칭키를 이용하여 열 수준(컬럼단위) 암호화 하는 방법을 알아 보자. 테스트를 위하여 샘플 데이터를 생성 한다. 여기에는 중요한 개인정보인 전화번호를 예를 들었다. CREATE TABLE MEMBER( NAME NVARCHAR(50), PHONE NVARCHAR(50) ) GO INSERT INTO MEMBER VALUES ('강성욱' , '010-3786-0318') ..

DMV를 사용하여 누락된 인덱스 확인

DMV를 사용하여 누락된 인덱스 확인 Version: SQL Server 2005, 2008, 2008R2, 2012 SQL Server에서 인덱스가 생성되어 있지만 사용되지 않는 인덱스에 대해 식별하는 방법에 대해서 알아 보자. SQL Server 2005 부터 검색 기록을 바탕으로 인덱스 후보를 식별하기 위한 DMV가 도입 되었다. 누락된 인덱스를 확인 하기 위한 DMV는 다음과 같다. Sys.dm_db_missing_index_details : 누락된 인덱스에 대한 상세 정보 반환 Sys.dm_db_missing_index_group_stats : 누락 된 인덱스 그룹에 대한 요약 정보 반환 Sys.dm_db_missing_index_groups : 누락 된 인덱스의 특정 그룹에 대한 반품 정보 반..

DMV를 이용한 SQL Server 대기 상태 확인

DMV를 이용한 SQL Server 대기 상태 확인 Version : SQL Server 2005, 2008, 2008R2, 2012 사용자가 나에게 와서 "데이터베이스가 느려요" 라고 말해주었다. 나는 어디에서부터 시작 할까? SQL Server의 성능을 확인하기 위해서는 성능 카운터, 프로파일러 등다양한 방법이 있다. 하지만 이것으로는 왠지 부족 한것 같다. DMV를 통하여 현재 SQL Server의 실행중인 대기 스레드 상태를 확인해 보자. Sys.dm_os_wait_stats는 실행 중인 모든 스레드로 인해 발생한 대기 정보를 반환한다. 이 DMV를 사용하면 SQL Server와 관련된 문제와 특정 쿼리 및 일괄 처리와 관련된 성능 문제도 확인 할 수 있다. Sys.dm_os_wait_stats를..

DMV를 이용한 SQL Server 성능 카운터 확인

DMV를 이용한 SQL Server 성능 카운터 확인 Version : SQL Server 2005, 2008, 2008R2, 2012 Windows의 성능 모니터를 확인 하기 위해서는 [시작] – [실행] - [Perfmon]을 입력하여 [성능 모니터]를 실행 하여야 한다. 성능모니터가 실행 되면 모니터링 하려는 카운터를 추가하여 모니터링 할 수 있다. 이때 성능 모니터링의 정보를 데이터베이스로도 저장 할 수 있다. 관련 링크 : http://sqlmvp.kr/140164562598 위의 방법 외에도 SQL Server의 성능 카운터는 SQL Server 2005 부터 추가된 DMV라는 것을 이용하여 모니터링 할 수 있다. 우선 다음과 같이 스크립트를 입력하면 모니터링 할 수 있는 카운터 개체가 나타난..

DMV를 이용한 SQL Server IO 성능 모니터 스냅샷 만들기

DMV를 이용한 SQL Server IO 성능 모니터 스냅샷 만들기 Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server에서 I/O 문제는 성능에 가장 큰 영향일 끼치는 요소 중 하나이다. I/O 대기 시간을 줄일 수 있다면 성능을 향상 시킬 수 있다. I/O 성능에 대한 부분은 근본적으로는 하드웨어의 성능과 밀접한 관련이 있다. 하지만 쿼리 튜닝을 통해서 어느 정도 해결 할 수 있다. DMV를 이용하여 I/O 분석을 위한 스냅샷을 만들어 보자. 특정 기간 또는 주기적으로 I/O를 수집하고 비교하여 잠재적인 I/O 병목 현상을 식별 할 수 있어야 한다. 이번 실습 방법은 1일 1회 또는 시간 당 1회 등 특정 간격으로 데이터를 수집하여 비교하여 스냅샷의 차..

DMV를 활용한 SQL Server 모니터링

DMV를 활용한 SQL Server 모니터링 Version : SQL Server 2005, 2008, 2008R2, 2012 아침에 출근하자 마자 야근한 동료에게서 서버가 너무 느려서 업무 처리에 힘들었다는 연락을 받았다. 어제 밤 SQL Server에 무슨 일이 있었던 걸까? 어떤 일이 있었는지 우리는 명쾌하게 답변을 할 수 있을까? DBA라면 SQL Server에 어떤 일이 일어나고 있는지 알아야 한다. 또한 모니터링 하는데 있어서 성능에 영향도 없어야 한다. 내가 없을 경우에도 모니터링을 하기 위해서는 지속적으로 모니터링 기록을 하는 도구가 필요하다. DMV를 통하여 지속적인 모니터링 기록을 남겨보자. 아래 스크립트는 SQL Server가 처리하고 있는 실행 코드를 캡처하는 기능을 제공한다. SE..

세션에 따른 캐시된 쿼리 플랜 설정 확인

세션에 따른 캐시된 쿼리 플랜 설정 확인 Version : SQL Server 2005, 2008, 2008R2, 2012 사용자가 SQL 문장을 실행하면 User Process가 server Process에게 해당 SQL문장을 전달 한다. 전달받은 서버 프로세스는 해당 SQL 문을 처리하는데 다음과 같은 순서로 진행 된다. Parse는 SQL 문장에 쓰인 키워드나 컬럼명 등을 분석해서 Parse Tree를 생성하게 된다. Parse Tree를 만드는 과정에서 문법 검사. 의미검사 등을 하게 된다. 간혹 스펠링이 틀린 경우 Parse Tree 단계에서 오류가 발생하고 철자 오류는 없지만 테이블 등이 없는 경우 semantic Check에서 오류가 발생 한다. 해당 문법에 오류는 없는지, 해당 테이블이 존..

SQL Server 특정 세션에 대한 마지막 실행 문장 확인

SQL Server 특정 세션에 대한 마지막 실행 문장 확인 Version : SQL Server 2005, 2008, 2008R2, 2012 특정 세션에서 마지막으로 실행한 쿼리를 확인하고 싶을 때 어떻게 할까? Sys.dm_exec_sql_text 라는 DMV와 SPID 값을 이용하여 특정 세션이 마지막 실행 쿼리를 확인 할 수 있다. SPID는 SQL Server인스턴스에서 세션을 식별할 수 있는 고유한 값이다. SPID를 확인 하는 방법은 해당 아래 스크립트 또는 SSMS에서 하단에 나타나는 정보로 확인 할 수 있다. 간혹 쿼리창이 연결된 상태에서 네트워크가 끊겻다 다시 붙는 경우 (쿼리창을 열어 둔채 서비스를 재실행 한 경우) SSMS의 하단에 나타나는 정보와 불일치 하는 경우도 있으니 스크립트..