최종 수정: 에
MASK
설명
MASK 함수는 민감한 정보를 보호하기 위해 데이터를 마스킹하는 데 사용됩니다. 기본적으로 대문자는 X로, 소문자는 x로, 숫자는 n으로 변환합니다.
구문
MASK(<str>[, <upper>[, <lower>[, <number>]]])
매개변수
| 매개변수 | 설명 |
|---|---|
<str> | 마스킹할 문자열. 타입: VARCHAR |
<upper> | 대문자를 대체할 문자. 기본값은 X입니다(선택 사항). 타입: VARCHAR |
<lower> | 소문자를 대체할 문자. 기본값은 x입니다(선택 사항). 타입: VARCHAR |
<number> | 숫자를 대체할 문자. 기본값은 n입니다(선택 사항). 타입: VARCHAR |
반환 값
문자와 숫자를 대체한 문자열을 VARCHAR 타입으로 반환합니다.
특수한 경우:
- 매개변수 중 하나라도 NULL이면 NULL을 반환합니다
- 영문자나 숫자가 아닌 문자는 변경되지 않습니다
- 대체 문자 매개변수에 여러 문자가 포함되어 있으면 첫 번째 문자만 사용합니다
예제
- 기본 사용법: 기본 대체 규칙
SELECT mask('abc123XYZ');
+-------------------+
| mask('abc123XYZ') |
+-------------------+
| xxxnnnXXX |
+-------------------+
- 사용자 지정 대체 문자
SELECT mask('abc123XYZ', '*', '#', '$');
+----------------------------------+
| mask('abc123XYZ', '*', '#', '$') |
+----------------------------------+
| ###$$$*** |
+----------------------------------+
- 특수 문자는 변경되지 않음
SELECT mask('Hello-123!');
+--------------------+
| mask('Hello-123!') |
+--------------------+
| Xxxxx-nnn! |
+--------------------+
- NULL 값 처리
SELECT mask(NULL);
+------------+
| mask(NULL) |
+------------+
| NULL |
+------------+
- 숫자로만 구성된 문자열
SELECT mask('1234567890');
+--------------------+
| mask('1234567890') |
+--------------------+
| nnnnnnnnnn |
+--------------------+
- 문자로만 구성된 문자열
SELECT mask('AbCdEfGh');
+------------------+
| mask('AbCdEfGh') |
+------------------+
| XxXxXxXx |
+------------------+
- 빈 문자열 처리
SELECT mask('');
+----------+
| mask('') |
+----------+
| |
+----------+
- 단일 문자로 대체(여러 문자 중 첫 번째 문자 사용)
SELECT mask('Test123', 'ABC', 'xyz', '999');
+--------------------------------------+
| mask('Test123', 'ABC', 'xyz', '999') |
+--------------------------------------+
| Axxx999 |
+--------------------------------------+
- 신용카드 번호 마스킹
SELECT mask('1234-5678-9012-3456');
+-----------------------------+
| mask('1234-5678-9012-3456') |
+-----------------------------+
| nnnn-nnnn-nnnn-nnnn |
+-----------------------------+
- 이메일 주소 마스킹
SELECT mask('user@example.com');
+--------------------------+
| mask('user@example.com') |
+--------------------------+
| xxxx@xxxxxxx.xxx |
+--------------------------+
SELECT mask('eeeéèêëìí1234');
+-----------------------------+
| mask('eeeéèêëìí1234') |
+-----------------------------+
| xxxéèêëìínnnn |
+-----------------------------+