SA_POLICY_ADMIN

SA_POLICY_ADMIN 패키지의 기본 개념과 패키지 내의 프러시저를 사용하는 방법을 설명합니다.

개요

SA_POLICY_ADMIN 는 Tibero Label Security의 정책들을 관리하는 패키지입니다.

프러시저

본 절에서는 SA_POLICY_ADMIN 패키지에서 제공하는 프러시저를 알파벳 순으로 설명합니다.

APPLY_TABLE_POLICY

이 프로시저를 수행하면 해당 테이블에 해당 Label Security 정책을 부여합니다. Label Security 정책의 레이 블 열이 해당 테이블에 존재하지 않다면 레이블 열을 해당 테이블에 추가하고 값은 NULL로 지정합니다.

정책이 적용되면 자동으로 테이블에 정책이 부여됩니다. 테이블 옵션을 변경하려면 해당 정책을 테이블에 서 제거하고 다시 적용시켜야 합니다.

ALTER_POLICY 프러시저의 세부 내용은 다음과 같습니다.

  • 프로토타입

SA_POLICY_ADMIN.APPLY_TABLE_POLICY
(
    policy_name    IN VARCHAR2,
    schema_name    IN VARCHAR2,
    table_name     IN VARCHAR2,
    table_options  IN VARCHAR2 DEFAULT NULL,
    label_function IN VARCHAR2 DEFAULT NULL,
    predicate      IN VARCHAR2 DEFAULT NULL
);
  • 파라미터

파라미터
설명

policy_name

  • Label Security 정책의 이름

  • 저장된 정책은 ALL_SA_POLICIES 뷰의 POLICY_NAME 열에서 찾을 수 있음

schema_name

정책이 보호할 테이블을 소유한 스키마 이름

table_name

정책이 보호할 테이블 이름

table_options

테이블에 사용할 정책 시행 옵션의 콤마(,)로 구분된 목록. NULL이면 정책의 default_option이 사용됨

가능한 정책 시행 옵션은 다음과 같음.

  • CHECK_CONTROL : INSERT, UPDATE 연산에 READ_CONTROL 정책 옵션을 부여합니다. 따라서, 새로 생성된 행에 대해서 정책을 적용합니다.

  • READ_CONTROL : 모든 쿼리에 정책을 적용. 권한이 부여된 행에 대해서만 SELECT, UPDATE, DELETE 연산이 가능.

  • WRITE_CONTROL : INSERT_CONTROL, DELETE_CONTROL, UP DATE_CONTROL를 합친 옵션.

  • INSERT_CONTROL : INSERT 연산에 정책을 적용.

  • DELETE_CONTROL : DELETE 연산에 정책을 적용.

  • UPDATE_CONTROL : UPDATE 연산에 정책을 적용.

  • ALL_CONTROL : 모든 정책 시행 옵션을 적용.

  • NO_CONTROL : 아무런 정책 시행 옵션을 적용하지 않음.

label_function

기본 값으로 사용할 레이블 값을 반환하는 함수를 명시하는 문자열

predicate

READ_CONTROL일 때 사용되는 추가 where 조건을 입력하는 문자열

(AND 나 OR 앞에 입력해야함)

  • 예제

REMOVE_TABLE_POLICY

해당 테이블에 지정된 명시된 Label Security 정책을 제거합니다. 테이블에 적용된 정책 조건들과 해당하는 DML 트리거들도 제거됩니다. 정책 레이블 열도 옵션을 통해 제거할 수 있습니다.

REMOVE_TABLE_POLICY 프러시저의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

policy_name

  • Label Security 정책의 이름

  • 저장된 정책은 ALL_SA_POLICIES 뷰의 POLICY_NAME 열에서 찾을 수 있음

schema_name

정책을 제거할 테이블이 속한 스키마 이름

table_name

정책을 제거할 테이블 이름

drop_column

  • 레이블 열을 제거할 지 여부

  • TRUE이면 레이블 열을 테이블에서 제거하고 FALSE이면 제거하지 않음

  • 예제

Last updated