[문제]
- 일반 유저가 특정 테이블을 select 할 때 특정 컬럼의 내용들을 masking 하기를 원한다. (ex - 주민번호)
- 물론 특정 유저는 해당 테이블을 select 할 때 masking 안된 모든 내용을 보기로 원함
[테이블 생성]
CREATE TABLE KIM.MASKING_TEST OBJECT_ID, SUBOBJECT_NAME, DATA_OBJECT_ID , OBJECT_TYPE, CREATED, OBJECT_NAME, OWNER FROM DBA_OBJECTS ; |
- 이 후, 원하는 값을 masking 하기 위해 FUNCTION 을 생성 (OWNER 에 대해서 masking)
CREATE OR REPLACE FUNCTION KIM.MSK_OWNER_FUN --해당 아이디들은 모든 컬럼이 보여지도록 설정 -- 이 외의 ID 들은 OWNER 라는 컬럼이 안보여 지도록 설정 |
-- function 을 정책으로 설정
begin |
[확인] User로는 Kim 이라는 메인 User / System 계정 / Scott 계정
1. Kim 으로 접속 후 확인 (정상확인 - OWNER 이 정상적으로 보여짐)
2. SYSTEM 계정으로 확인(정상확인 - OWNER 이 정상적으로 보여짐)
3. SCOTT 계정으로 확인(확인이 안됨 - OWNER가 null 값으로 표시)
뭔가가 아쉽네...
더 유동적인 방법이 필요한데....능력부족...1
[출처들]
'Oracle > DBA' 카테고리의 다른 글
[Oracle] Merge 구문 1 (0) | 2015.11.12 |
---|---|
[펌] [ORACLE] SYS_CONTEXT 및 USERENV 정리 (0) | 2015.09.03 |
[펌] DBMS_XPLAN (0) | 2015.08.28 |
[펌]Index Access and Filter (0) | 2015.08.28 |
DBMS_RANDOM (0) | 2015.08.18 |