티스토리 뷰

SQL Database V12 – DataMasking

 

이번 글에서는 Azure SQL Database V12에서의 동적 데이터 마스킹에 대한 내용을 살펴보려 합니다. 데이터 마스킹은 이벤트 당첨 페이지 등에서 많이 보는 것으로 홍*, 01-****-5678 이런 식으로 표시하는 것을 말합니다.

 

먼저 개인정보의 기술적 관리적 보호조치 기준 해설서를 보면 아래와 같이 조항이 있습니다.

해당 예시 화면은 아래와 같이 나타납니다.

성명

*

생년월일

******

전화번호

02-****-1234

핸드폰

010-****-1234

주소

서울 종로구 ****12-3

접속지 IP

123.123.***.123

 

데이터베이스에는 제대로 들어가 있는 값을 콜센터등 응용프로그램에서 표시할 경우 화면에 표시하기 전에 위와 같이 나타나게 해주어야 합니다. 그리고 데이터베이스를 사용하는 데이터베이스 도구에서도 쿼리를 조회할 경우 위와 같이 결과를 나타나게 해야 하는 것도 필요할 것 같습니다.

 

Azure SQL Database V12 에서는 간단하게 데이터 마스킹을 처리해줄 수 있습니다. 몇몇 제공하는 템플릿과 커스텀 지정을 통해 개인 정보에 대한 표시제한을 진행할 수 있습니다.

 

1.     먼저 V12 데이터베이스를 생성하고 사용자/로그인, 테이블을 생성해야 합니다.

2.     해당 데이터베이스의 감사 및 보안 메뉴로 이동합니다. 동적 데이터 마스킹 메뉴를 볼 수 있습니다.

3.     감사 및 보안에서 동적 데이터 마스킹을 설정합니다.

 

4.     권한 있는 로그인은 조회할 때 값이 다 보이게 하는 로그인이 있다면 추가할 수 있습니다.

5.     하단의 마스크 추가 메뉴를 클릭하여 마스크를 추가할 수 있습니다.

6.     마스크 추가 메뉴에서는 테이블, 컬럼, 마스킹 기능을 추가할 수 있습니다. 주민등록번호, 이메일등에 대한 템플릿과 기본값, 사용자 지정을 통해 구성이 가능합니다.

7.     아래 구문은 마스킹을 할 테이블입니다.

CREATE TABLE DataMasking

(

ID INT PRIMARY KEY,

DefaultValue1 INT,

DefaultValue2 NVARCHAR(50),

DefaultValue3 DATETIME,

CardNo NVARCHAR(50),

SSN NVARCHAR(50),

Email NVARCHAR(50),

Num INT,

CustomStr NVARCHAR(50),

Name NVARCHAR(50),

TelNo NVARCHAR(50)

)

GO

 

 

값은 아래의 예와 유사한 값을 입력했습니다.

 

INSERT DataMasking

VALUES (1, 1234,N'기본값',N'2015-06-29'

, N'1234-4567-7890-1234',N'111111-1111111',N'test@test.com',N'1234',N'커스텀텍스트',N'홍길동', N'010-1234-5678')

 

 

8.     마스킹을 아래와 같이 설정하였습니다.

9.     SSMS를 통해 일반 사용자로 연결하여 데이터를 조회해보겠습니다.

10.   사용자 지정의 예로 TelNo 같은 경우는 아래 그림처럼 접두가와 접미사를 4로 지정하고 중간은 ****로 처리했습니다. 접미사를 5로 지정해야 까지 나옵니다.  
  

11.   다음은 응용프로그램에서 값을 조회해보겠습니다.

 

V12에서 개인정보의 표시 제한에 대한 내용으로 데이터 마스킹을 알아보았습니다.

 

 

댓글