# 원문 조회 허용 사용자 페이지 리뷰

- URL: `/user-masking-rules`
- 현재 목적: ASO 마스킹 대상 컬럼에 대해 특정 사용자에게 원문 조회 예외를 준다.
- VPD/ASO 관련성: VPD로 허용된 행 안에서 특정 컬럼을 원문으로 볼 수 있는지 결정한다.

## 페르소나 의견

- 일반 사용자: “원문 허용”이 행 접근 권한까지 주는 것처럼 보일 수 있다.
- 운영 관리자: 특정 사용자에게 컬럼 원문을 허용하면 어떤 테이블/컬럼에 영향이 있는지 바로 봐야 한다.
- 적용 담당자: “자기 고객이면 원문, 타 고객이면 마스킹” 같은 조건부 요구는 현재 단순 UNMASK 예외와 다르다는 점이 필요하다.
- DB 관리자: 이 설정은 ASO expression이 읽는 세션 context를 만드는 입력값이라는 설명이 필요하다.

## 가벼운 개선

1. 상단 문구를 “행 접근은 VPD가 결정하고, 이 화면은 허용된 행의 컬럼 원문 표시만 결정합니다.”로 고정한다.
2. 사용자 선택 시 “이 사용자가 VPD로 볼 수 있는 행 범위” 링크를 접근 검증으로 연결한다.
3. 단순 원문 허용과 조건부 원문 허용의 차이를 안내한다.

## Advanced로 둘 내용

- `set_masking_rule_context(user_id)` 흐름
- `MR_<column_id>` 세션 컨텍스트
- `DBMS_REDACT.UPDATE_POLICY_EXPRESSION` 적용 방식

## 우선순위

P0. VPD와 ASO 권한을 섞어 이해하면 운영 사고로 이어질 수 있다.
