DBMS_REDACT
DBMS_REDACT 패키지의 기본 개념과 패키지 내의 상수 및 프러시저들의 의미를 설명합니다.
개요
DBMS_REDACT은 Tibero에서의 Data redaction을 위한 interface를 제공하는 패키지입니다. Data redaction은 낮은 권한 레벨을 가진 유저 또는 애플리케이션으로부터 입력된 쿼리의 결과 데이터를 masking(Redaction)할 수 있는 기능입니다.
상수
DBMS_REDACT에서는 패키지 내의 프러시저의 파라미터로서 사용할 수 있는 상수들을 정의하고 있습니다.
DBMS_REDACT.ADD_POLICY의 function_type 파라미터 상수
NONE
0
BINARY_INTEGER
Data redaction을 하지 않음
FULL
1
BINARY_INTEGER
고정된 값들에 대해 redact
PARTIAL
2
BINARY_INTEGER
Partial redaction으로 컬럼 데이터의 일부분을 redact
FORMAT_PRESERVING
3
BINARY_INTEGER
원본 데이터의 형식을 유지하면서 암호화하는 방식으로 redact (현재 미지원)
RANDOM
4
BINARY_INTEGER
데이터를 무작위 값으로 redact (현재 미지원)
REGEXP
5
BINARY_INTEGER
정규 표현식을 기반으로 redact (현재 미지원)
NULLIFY
6
BINARY_INTEGER
NULL 값으로 redact (현재 미지원)
REGEXP_WIDTH
7
BINARY_INTEGER
컬럼의 너비를 보존하면서 정규 표현식을 기반으로 redact (현재 미지원)
DBMS_REDACT.ALTER_POLICY의 action 파라미터 상수
ADD_COLUMN
1
BINARY_INTEGER
Redaction policy에 컬럼 추가
DROP_COLUMN
2
BINARY_INTEGER
Redaction policy에 컬럼 제거
MODIFY_EXPRESSION
3
BINARY_INTEGER
Redaction policy의 표현 수정
MODIFY_COLUMN
4
BINARY_INTEGER
Redaction policy의 컬럼을 수정함으로써 redaction의 function_type 또는 function_parameters를 수정
SET_POLICY_DESCRIPTION
5
BINARY_INTEGER
Redaction policy에 대한 설명을 추가
SET_COLUMN_DE
SCRIPTION
6
BINARY_INTEGER
Redaction policy의 컬럼에 대한 설명 추가
프러시저
본 절에서는 DBMS_REDACT 패키지에서 제공하는 프러시저를 알파벳 순으로 설명합니다.
REDACT적용 결과를 확인하기 위해 권한을 가진 유저(SYS 등)을 통해 다음과 같은 방식으로 필요한 권한을 부여하거나 테이블을 생성할 수 있습니다.
예제
ADD_POLICY
테이블 또는 뷰에 대한 Data redaction policy를 정의합니다.
ADD_POLICY 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
object_schema
테이블을 소유하고 있는 스키마
NULL인 경우 현재 유저
object_name
Data redaction policy를 추가할 테이블 또는 뷰의 이름
policy_name
정책의 이름
policy_description
Redaction policy에 대한 설명
column_name
Redaction policy를 적용할 컬럼의 이름
하나보다 많은 컬럼에 대해 적용하는 경우 ALTER_POLICY 프러시저를 이용
column_description
Redaction이 적용된 컬럼에 대한 설명
function_type
사용할 redaction 함수의 타입
DBMS_REDACT.NONE
DBMS_REDACT.FULL (기본값)
DBMS_REDACT.PARTIAL
만약 function_type이 DBMS_REDACT.REGEXP인 경우 function_parameters 를 생략해야 함
Data redaction policy를 정의하려면 regexp_* parameter 를 사용해야 함
function_parameters
Redaction 함수를 위한 파라미터로 function_type이 어떤 값인지에 따라 가능한 값이 바뀜.
만약 function_type이 DBMS_REDACT.REGEXP인 경우 function_parameters를 생략해야 함
Data redaction policy를 정의하려면 regexp_* parameter를 사용해야 함
사용할 redaction 함수의타입
DBMS_REDACT.NONE : 생략 가능하며 NULL이 기본값
DBMS_REDACT.FULL : 생략 가능하며 NULL이 기본값
DBMS_REDACT.PARTIAL : Masking parameter를 값으로 넣어줌
다음은 각 데이터 타입별 Masking parameter에 대한 설명임
[Character]
Character 데이터 타입에 대한 Masking parameter는 다음 5가지 요소들이 콤마(,)로 분리된 리스트 형태로 구성됨
Input 형식 : Masking이 될 수도 있으면 'V', 형식 문자에 대해서는 무시하므로 'F'로 설정
Output 형식 : Masking이 될 수도 있으면 'V', 형식 문자는 그대로 유지
Mask character : 실제 값을 대신하게 될 글자. '*' 또는 'x'로 설정
시작 숫자 위치 : String 상에서 masking을 시작할 위치를 설정. String의 시작점은 1. 위치를 계산할 때는 형식 문자들은 고려되지 않음
끝 숫자 위치 : String 상에서 masking이 끝나는 위치를 설정
예를 들어 'VVVFVVFVVVV,VVV-VV-VVVV,X,1,5'가 masking paramter로 들어오면 123-45-6789는 XXX-XX-6789가 됨
[Number]
Number 데이터 타입에 대한 Masking parameter는 다음 3가지 요소들이 콤마(,)로 분리된 리스트 형태로 구성됨
Mask character : '0'과 '9' 사이의 글자로 실제 값을 대체
시작 숫자 위치 : String 상에서 masking을 시작할 위치를 설정. String의 시작점은 1. 위치를 계산할 때 소수점은 고려되지 않음
끝 숫자 위치 : String 상에서 masking이 끝나는 위치를 설정
예를 들어 masking parameter가 '9,1,5'인 경우 123456789는 999996789가 됨
[Datetime]
Datetime 데이터 타입에 대한 Masking parameter는 다음 6가지 요소들이 구분자 없이 순차적으로 붙어 구성됨
월
'M' : 월에 대해 masking하지 않음
'm#' : 가능하면 명시된 숫자로 월을 mask, #은 1부터 12 사이 숫자
일
'D' : 일에 대해 masking하지 않음
'd#' : 가능하면 명시된 숫자로 일을 mask, #은 1부터 31 사이 숫자
년도
'Y' : 년도에 대해 masking하지 않음
'y#' : 가능하면 명시된 숫자로 년도를 mask, #은 1부터 9999 사이 숫자
시
'H' : 시에 대해 masking하지 않음
'h#' : 가능하면 명시된 숫자로 시를 mask, #은 0부터 23 사이 숫자
분
'M' : 분에 대해 masking하지 않음
'm#' : 가능하면 명시된 숫자로 분을 mask, #은 0부터 59 사이 숫자
초
'S' : 초에 대해 masking하지 않음
's#' : 가능하면 명시된 숫자로 초를 mask, #은 0부터 59 사이 숫자
예를 들어 masking parameter가 'm12DYHMS'인 경우 01-May-01 01:01:01는 01-Dec-01 01:01:01가 됨
expression
테이블 또는 뷰에 대한 default boolean expression
이 파라미터로 들어온 expression의 값이 TRUE일 때만 redaction을 수행
다음 함수들을 지원
SYS_CONTEXT
SUBSTR 관련 함수들
LENGTH 관련 함수들
enable
Data redaction policy의 자동 적용 여부를 결정하는 boolean 값
TRUE인 경우 자동으로 정책을 적용
regexp_*
function_type이 DBMS_REDACT.REGEXP일 때 사용되는 파라미터들이지만 현재 function_type으로 DBMS_REDACT.REGEXP가 지원되지 않는 상태
예제
– function_type이 DBMS_REDACT.PARTIAL인 경우
– function_type이 DBMS_REDACT.FULL인 경우
ALTER_POLICY
테이블 또는 뷰에 대한 Data redaction policy를 바꿉니다. 다음과 같은 방식을 통해 정책을 바꿉니다.
정책의 expression을 변경
특정 컬럼의 redaction의 종류를 변경
특정 컬럼에 대한 redaction 함수의 파라미터를 변경
Redaction policy에 컬럼을 추가
Redaction policy에서 컬럼을 제거
ALTER_POLICY 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
object_schema
테이블을 소유하고 있는 스키마
NULL인 경우 현재 유저
object_name
Data redaction policy를 추가할 테이블 또는 뷰의 이름
policy_name
정책의 이름
action
자세한 내용은 “29.2. 상수”를 참고
column_name
Redaction policy를 적용할 컬럼의 이름
하나보다 많은 컬럼에 대해 적용하는 경우 ALTER_POLICY 프러시저를 이용
function_type
사용할 redaction 함수의 타입
DBMS_REDACT.NONE
DBMS_REDACT.FULL (기본값)
DBMS_REDACT.PARTIAL
만약 function_type이 DBMS_REDACT.REGEXP인 경우 function_parameters 를 생략해야 함
Data redaction policy를 정의하려면 regexp_* parameter 를 사용해야 함
function_parameters
Redaction 함수를 위한 파라미터로 function_type이 어떤 값인지에 따라 가능한 값이 바뀜
만약 function_type이 DBMS_REDACT.REGEXP인 경우 function_parameters를 생략해야 함
Data redaction policy를 정의하려면 regexp_* parameter를 사용해야 함
DBMS_REDACT.NONE : 생략 가능하며 NULL이 기본값
DBMS_REDACT.FULL : 생략 가능하며 NULL이 기본값
DBMS_REDACT.PARTIAL : masking parameter를 값으로 넣어줌. 각 데이터 타입에 대한 masking parameter에 대한 자세한 내용은 “29.3.1. ADD_POLICY”의 "function_parameters" 항목을 참고.
expression
테이블 또는 뷰에 대한 default boolean expression
이 파라미터로 들어온 expression의 값이 TRUE일 때만 redaction을 수행
다음 함수들을 지원
SYS_CONTEXT
SUBSTR 관련 함수들
LENGTH 관련 함수들
enable
Data redaction policy의 자동 적용 여부를 결정하는 boolean 값
TRUE인 경우 자동으로 정책을 적용
regexp_*
function_type이 DBMS_REDACT.REGEXP일 때 사용되는 파라미터들이지 만 현재 function_type으로 DBMS_REDACT.REGEXP가 지원되지 않는 상태
policy_description
Redaction policy에 대한 설명
column_description
Redaction이 적용된 컬럼에 대한 설명
예제
DISABLE_POLICY
Data redaction policy가 적용되지 않게 합니다.
DISABLE_POLICY 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
object_schema
테이블 또는 뷰를 소유하고 있는 스키마
NULL인 경우 현재 유저
object_name
Data redaction policy를 제거할 테이블 또는 뷰의 이름
policy_name
제거될 정책의 이름
예제
DROP_POLICY
테이블 또는 뷰로부터 masking policy를 제거합니다.
DROP_POLICY 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
object_schema
테이블 또는 뷰를 소유하고 있는 스키마
NULL인 경우 현재 유저
object_name
Data redaction policy를 제거할 테이블 또는 뷰의 이름
policy_name
제거될 정책의 이름
예제
ENABLE_POLICY
Data redaction policy가 다시 적용되게 합니다.
ENABLE_POLICY 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
object_schema
테이블 또는 뷰를 소유하고 있는 스키마
NULL인 경우 현재 유저
object_name
Data redaction policy를 제거할 테이블 또는 뷰의 이름
policy_name
제거될 정책의 이름
예제
UPDATE_FULL_REDACTION_VALUES
Full redactation에 대한 Data redaction policy에 대해 기본적으로 보여지는 값들을 변경합니다.
UPDATE_FULL_REDACTION_VALUES 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
number_val
NUMBER 데이터 타입에 대한 컬럼들의 기본값을 변경
binfloat_val
BINARY_FLOAT 데이터 타입에 대한 컬럼들의 기본값을 변경
bindouble_val
BINARY_DOUBLE 데이터 타입에 대한 컬럼들의 기본값을 변경
char_val
CHAR 데이터 타입에 대한 컬럼들의 기본값을 변경
varchar_val
VARCHAR2 데이터 타입에 대한 컬럼들의 기본값을 변경
nchar_val
NCHAR 데이터 타입에 대한 컬럼들의 기본값을 변경
nvarchar_val
NVARCHAR2 데이터 타입에 대한 컬럼들의 기본값을 변경
date_val
DATE 데이터 타입에 대한 컬럼들의 기본값을 변경
ts_val
TIMESTAMP 데이터 타입에 대한 컬럼들의 기본값을 변경
tswtz_val
TIMESTAMP WITH TIME ZONE 데이터 타입에 대한 컬럼들의 기본값을 변경
blob_val
BLOB 데이터 타입에 대한 컬럼들의 기본값을 변경
clob_val
CLOB 데이터 타입에 대한 컬럼들의 기본값을 변경
nclob_val
NCLOB 데이터 타입에 대한 컬럼들의 기본값을 변경
Last updated

