본문으로 건너뛰기
최종 수정: 에

MASK

설명​

MASK 함수는 민감한 정보를 보호하기 위해 데이터를 마스킹하는 데 사용됩니다. 기본적으로 대문자는 X로, 소문자는 x로, 숫자는 n으로 변환합니다.

구문​

MASK(<str>[, <upper>[, <lower>[, <number>]]])

매개변수​

매개변수설명
<str>마스킹할 문자열. 타입: VARCHAR
<upper>대문자를 대체할 문자. 기본값은 X입니다(선택 사항). 타입: VARCHAR
<lower>소문자를 대체할 문자. 기본값은 x입니다(선택 사항). 타입: VARCHAR
<number>숫자를 대체할 문자. 기본값은 n입니다(선택 사항). 타입: VARCHAR

반환 값​

문자와 숫자를 대체한 문자열을 VARCHAR 타입으로 반환합니다.

특수한 경우:

  • 매개변수 중 하나라도 NULL이면 NULL을 반환합니다
  • 영문자나 숫자가 아닌 문자는 변경되지 않습니다
  • 대체 문자 매개변수에 여러 문자가 포함되어 있으면 첫 번째 문자만 사용합니다

예제​

  1. 기본 사용법: 기본 대체 규칙
SELECT mask('abc123XYZ');
+-------------------+
| mask('abc123XYZ') |
+-------------------+
| xxxnnnXXX |
+-------------------+
  1. 사용자 지정 대체 문자
SELECT mask('abc123XYZ', '*', '#', '$');
+----------------------------------+
| mask('abc123XYZ', '*', '#', '$') |
+----------------------------------+
| ###$$$*** |
+----------------------------------+
  1. 특수 문자는 변경되지 않음
SELECT mask('Hello-123!');
+--------------------+
| mask('Hello-123!') |
+--------------------+
| Xxxxx-nnn! |
+--------------------+
  1. NULL 값 처리
SELECT mask(NULL);
+------------+
| mask(NULL) |
+------------+
| NULL |
+------------+
  1. 숫자로만 구성된 문자열
SELECT mask('1234567890');
+--------------------+
| mask('1234567890') |
+--------------------+
| nnnnnnnnnn |
+--------------------+
  1. 문자로만 구성된 문자열
SELECT mask('AbCdEfGh');
+------------------+
| mask('AbCdEfGh') |
+------------------+
| XxXxXxXx |
+------------------+
  1. 빈 문자열 처리
SELECT mask('');
+----------+
| mask('') |
+----------+
| |
+----------+
  1. 단일 문자로 대체(여러 문자 중 첫 번째 문자 사용)
SELECT mask('Test123', 'ABC', 'xyz', '999');
+--------------------------------------+
| mask('Test123', 'ABC', 'xyz', '999') |
+--------------------------------------+
| Axxx999 |
+--------------------------------------+
  1. 신용카드 번호 마스킹
SELECT mask('1234-5678-9012-3456');
+-----------------------------+
| mask('1234-5678-9012-3456') |
+-----------------------------+
| nnnn-nnnn-nnnn-nnnn |
+-----------------------------+
  1. 이메일 주소 마스킹
SELECT mask('user@example.com');
+--------------------------+
| mask('user@example.com') |
+--------------------------+
| xxxx@xxxxxxx.xxx |
+--------------------------+
SELECT mask('eeeéèêëìí1234');
+-----------------------------+
| mask('eeeéèêëìí1234') |
+-----------------------------+
| xxxéèêëìínnnn |
+-----------------------------+