민감정보 마스킹

주민등록번호·연락처·계좌번호처럼 노출되면 안 되는 정보를 지정해 두면, 마스킹 대상 역할로 접속한 팀원에게는 그 값이 서버에서 가려진 채 내려갑니다. 컬럼 전체를 가리는 컬럼별 마스킹과, 값 내용에서 정규식과 일치하는 부분만 가리는 패턴별 마스킹 두 가지를 제공합니다. 실제 값은 클라이언트로 전달되지 않으므로, 브라우저를 뜯어봐도 원본을 복원할 수 없습니다.

어떻게 동작하나

민감정보 마스킹은 역할 기반으로 동작합니다. 프로젝트에서 특정 역할을 "마스킹 대상"으로 설정하면, 그 역할로 접속한 팀원에게 지정된 민감정보가 서버에서 가려진 채 내려갑니다. 소유자(OWNER)와 전체 권한 역할은 항상 원본 값을 그대로 봅니다.

사용을 위해서는 다음 두 가지 설정이 모두 필요합니다.

  • ① 마스킹 대상 역할 — 어떤 역할이 값을 가려서 볼 것인지 (프로젝트 설정에서 지정)
  • ② 가릴 대상 — 어떤 컬럼을 가릴지 지정하거나(컬럼별), 어떤 패턴을 가릴지 등록합니다(패턴별)

값은 서버에서 가려집니다. 마스킹 대상 역할에게는 원본 값이 아예 전달되지 않으므로, 값을 되돌려 볼 방법이 없습니다.

민감정보 마스킹은 온라인 팀 프로젝트 전용 기능입니다. 오프라인(개인) 모드에는 적용되지 않습니다.

마스킹에는 두 가지 방식이 있습니다. 컬럼별 마스킹은 지정한 컬럼 전체를 가리고(1·2단계), 패턴별 마스킹은 값 내용에서 정규식과 일치하는 부분만 가립니다(아래 참고). 역할을 마스킹 대상으로 설정하면 두 방식이 함께 적용됩니다.

1단계 · 마스킹 대상 역할 설정

마스킹 대상 역할 설정

프로젝트 설정의 역할 권한에서 각 역할마다 "민감정보 마스킹 처리" 항목을 켜면, 해당 역할이 마스킹 대상이 됩니다. 하나 이상의 역할에 마스킹이 켜져 있어야 컬럼 지정 기능이 활성화됩니다.

역할마스킹 가능 여부설명
소유자 (OWNER)불가 (항상 원본)프로젝트 소유자는 언제나 전체 값을 봅니다. 마스킹 대상에서 제외됩니다.
전체 권한 역할불가 (항상 원본)전체 권한이 부여된 역할은 마스킹되지 않습니다.
매니저 · DBA · 멤버가능각 역할에 마스킹을 켜면 지정된 민감 컬럼이 **** 로 보입니다.

역할 서열과 자동 승계

마스킹 설정에는 신뢰 서열이 적용됩니다. 서열은 매니저 > DBA > 멤버 순이며, 상위 역할을 마스킹하면 그보다 하위 역할은 자동으로 함께 마스킹됩니다. 하위 역할이 상위 역할보다 더 많이 볼 수는 없다는 원칙 때문입니다. (예: 매니저를 마스킹하면 DBA·멤버도 자동 마스킹됩니다.)

TIP

마스킹 설정을 저장하면 이미 열려 있는 ERD·테이블 편집기·결과 화면에도 즉시 반영됩니다. 프로젝트를 다시 열 필요가 없습니다.

2단계 · 민감 컬럼 지정

민감 컬럼 지정

가릴 컬럼을 우클릭하면 나오는 컨텍스트 메뉴에서 "민감정보로 지정" / "지정 해제"를 선택합니다. 지정된 컬럼에는 자물쇠(방패) 아이콘이 표시됩니다. 지정은 서버에 즉시 저장되어 프로젝트의 모든 팀원에게 공유됩니다.

지정은 다음 위치에서 할 수 있습니다.

  • ERD 테이블 노드 — 캔버스의 테이블에서 컬럼 우클릭
  • 테이블 편집기 — 컬럼 목록에서 우클릭
  • 객체 상세 (뷰) 컬럼 목록 — 뷰의 컬럼도 동일하게 지정 가능

지정 · 해제 권한 (비대칭)

동작가능한 사람이유
지정 (추가)소유자 또는 마스킹 대상이 아닌 역할값을 가리는 방향이라 상대적으로 넓게 허용합니다. 마스킹 대상 역할은 지정할 수 없습니다.
지정 해제 (제거)소유자만해제하면 마스킹 대상에게 값이 노출됩니다. 노출을 되돌리는 결정은 소유자만 내릴 수 있습니다.
문자 타입이 아닌 컬럼에서의 지정 화면

문자 타입 컬럼만 지정할 수 있습니다. 테이블·ERD에서는 VARCHAR·TEXT 같은 문자 타입만 대상이 됩니다. DECIMAL·INT 같은 숫자, 날짜, 불리언 타입은 지정 대상이 아니어서 우클릭 메뉴에 "민감정보로 지정"이 나타나지 않습니다. 민감정보(주민번호·연락처·이메일 등)는 대부분 문자 타입이며, 마스킹된 값을 편집할 때 텍스트로 일관되게 다루기 위한 제한입니다.

PK · FK 컬럼은 지정할 수 없습니다. 기본키·외래키는 편집과 조인의 기준이 되므로, 이미 지정된 컬럼이 나중에 PK/FK가 되면 민감 지정이 자동으로 해제됩니다.

패턴별 마스킹

컬럼별 마스킹이 '지정한 컬럼 전체'를 가리는 반면, 패턴별 마스킹은 값의 내용을 정규식으로 훑어 일치하는 부분만 가립니다. 그래서 메모·비고처럼 자유 텍스트 컬럼 안에 문장으로 섞여 들어온 전화번호·주민번호도 그 부분만 가릴 수 있습니다. 컬럼별 마스킹으로는 잡히지 않는, 텍스트 속에 흩어진 민감정보를 보완합니다.

패턴 등록 버튼

패턴 등록

프로젝트 설정 → 역할 권한에서 "민감정보 마스킹 처리"를 켜면 패턴별 마스킹 항목이 보입니다. 패턴 관리를 눌러 패턴을 등록하세요. 등록 창에서 이름 · 정규식 · 마스킹 방식을 입력하고, 미리보기에 예시 문구를 넣으면 실제로 어떻게 가려지는지 즉시 확인할 수 있습니다. 등록한 패턴은 프로젝트 전체에 공유됩니다.

패턴 추가 모달

마스킹 방식

방식동작예시
부분앞·뒤 일부 글자만 남기고 나머지를 가립니다.010-1234-5678010-****-****
전체일치한 부분 전체를 가립니다.900101-1234567******-*******
템플릿도메인처럼 일부만 남기고 재조립합니다 (남길 조각을 $1·$2 로 지정).hong@example.com***@example.com
TIP

자주 쓰는 패턴(휴대전화·주민등록번호·신용카드·이메일)은 등록 창의 빠른 시작 버튼으로 한 번에 채울 수 있습니다.

적용 범위와 편집 방식은 컬럼별 마스킹과 같습니다. 값은 서버에서 가려져 SQL 결과·AI 결과·내보내기에 모두 반영되고, 패턴이 실제로 적용된 컬럼을 편집하면 빈 값으로 시작합니다.

문자열 값에만 적용됩니다. 내용을 기준으로 하므로 문맥이 없으면 의도치 않은 값(예: 금액처럼 생긴 숫자)까지 가려질 수 있습니다. 등록 전 미리보기로 확인하고, 필요하면 앞뒤 단어를 정규식에 넣어(예: "연봉") 범위를 좁히세요.

마스킹이 적용되는 곳

마스킹 처리 완료

마스킹 대상 역할에게는 민감 컬럼 값이 아래 모든 경로에서 **** 로 내려갑니다.

  • SQL 에디터 결과 그리드
  • AI 쿼리 결과 — AI 모델에게도 원본이 아닌 **** 만 전달됩니다.
  • 결과 내보내기 — CSV·Excel 등으로 내보낸 파일에도 마스킹된 값이 저장됩니다.
  • 미리보기 패널

마스킹된 셀 편집

마스킹된 셀 편집

마스킹된 셀은 원본을 표시하지 않으므로, 편집을 열면 빈 값으로 시작합니다. 아무것도 입력하지 않고 저장하면 값이 바뀌지 않고, 새 값을 입력하면 그 값으로 UPDATE 됩니다. 즉 편집 중에도 옛 값이 드러나지 않습니다. 단, 기본키(PK)로 쓰이는 마스킹 컬럼은 편집할 수 없습니다.

어떤 값이 가려지나

민감 컬럼을 그대로 조회한 값은 물론, 그 컬럼을 가공한 결과(일부만 잘라내거나 다른 값과 합친 경우 등)도 최대한 가립니다. 애매한 경우에는 노출을 막는 쪽으로 판단합니다.

참고 · 제약

  • 온라인 팀 프로젝트에서만 동작합니다. 오프라인(개인) 모드에는 적용되지 않습니다.
  • 소유자와 전체 권한 역할은 어떤 경우에도 마스킹되지 않습니다.
  • 마스킹 대상 역할이 하나도 없으면 민감 컬럼 지정 기능이 비활성화됩니다.
  • PK · FK 컬럼은 지정 대상에서 자동으로 제외됩니다.
  • 지정 해제는 소유자만 할 수 있습니다.
  • 패턴별 마스킹은 문자열 값의 내용을 기준으로 일부만 가리며, 역할이 마스킹 대상이면 컬럼별 마스킹과 함께 적용됩니다.