DROP ROW ACCESS POLICY

DROP ROW ACCESS POLICY

시스템에서 행 액세스 정책(row access policy)을 제거하는 명령이에요. 행 액세스 정책은 테이블이나 뷰의 행 수준 접근을 제어하는 데 사용돼요.

출처: 문서

본문

구문 (Syntax)

DROP ROW ACCESS POLICY [ IF EXISTS ] <name>

파라미터

  • name — 행 액세스 정책의 식별자예요. 계정 내에서 고유해야 해요. 식별자 값은 알파벳 문자로 시작해야 하며, 전체 식별자 문자열을 큰따옴표로 묶지 않는 한 공백이나 특수 문자를 포함할 수 없어요(예: "My object"). 큰따옴표로 묶은 식별자는 대소문자를 구분해요.

접근 제어 요구사항 (Access control requirements)

이 작업을 실행하는 역할은 최소한 다음 권한을 가져야 해요:

Privilege Object Notes
OWNERSHIP Schema 또는 Row access policy 행 액세스 정책을 포함하는 스키마. OWNERSHIP은 객체 생성 역할에 자동 부여되는 특수 권한이지만, 소유 역할(또는 MANAGE GRANTS 권한이 있는 역할)이 GRANT OWNERSHIP 명령으로 다른 역할에 이전할 수도 있어요.

스키마에서 객체를 운영하려면 부모 데이터베이스에 대한 권한이 하나 이상, 부모 스키마에 대한 권한이 하나 이상 필요해요.

사용 메모 (Usage notes)

  • 행 액세스 정책을 삭제하기 전에, 다음 문장을 실행하여 행 액세스 정책이 어떤 테이블이나 뷰에 적용되어 있는지 확인해요:
SELECT * from table(information_schema.policy_references(policy_name=>''));
  • 현재 리소스에 연결된 행 액세스 정책은 성공적으로 삭제할 수 없어요. DROP 문장을 실행하기 전에 ALTER TABLE 또는 ALTER VIEW 문장으로 행 액세스 정책을 테이블이나 뷰에서 분리해야 해요.
  • Snowflake는 행 액세스 정책 객체에 대해 UNDROP을 지원하지 않아요. UNDROP을 사용하면 오류 메시지가 발생해요.
  • 테이블 열에 행 액세스 정책이 연결되어 있으면, 그 열을 테이블에서 삭제할 수 없어요.
  • IF EXISTS 절을 지정했을 때 대상 객체가 존재하지 않으면, 명령은 오류를 반환하지 않고 성공적으로 완료돼요.
  • 백업 안의 테이블이 사용하는 행 액세스 정책을 삭제할 수 있어요. 이 경우 백업에서 테이블을 복원한 후 즉시 사용할 수는 없어요. 복원된 테이블을 사용하려면 복원 후 ALTER TABLE … DROP ALL ROW ACCESS POLICIES 명령을 실행해야 해요.

예시 (Example)

다음 예시는 테이블에서 행 액세스 정책을 삭제해요:

DROP ROW ACCESS POLICY rap_table_employee_info;

더 알아보기 (Learn more)