CREATE JOIN POLICY

현재/지정된 스키마에 새 조인 정책 을 만들거나 기존 조인 정책을 바꿉니다.

조인 정책을 생성한 후 ALTER TABLE 명령을 사용하여 테이블에 정책을 할당하거나 ALTER VIEW 명령을 사용하여 뷰에 할당합니다. 또는 테이블을 만들 때 테이블에 조인 정책을 할당할 수 있습니다.

참고 항목:

조인 정책 DDL 참조

구문

CREATE [ OR REPLACE ] JOIN POLICY [ IF NOT EXISTS ] <name>
  AS () RETURNS JOIN_CONSTRAINT -> <body>
  [ COMMENT = '<string_literal>' ]
Copy

매개 변수

name

조인 정책의 식별자이며 스키마에 대해 고유해야 합니다.

또한, 식별자는 알파벳 문자로 시작해야 하며 전체 식별자 문자열을 큰따옴표(예: "My object")로 묶지 않는 한 공백이나 특수 문자를 포함할 수 없습니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.

자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.

AS () RETURNS JOIN_CONSTRAINT

정책의 서명 및 반환 유형. 서명은 어떠한 인자도 허용하지 않으며 반환 유형은 내부 데이터 타입인 JOIN_CONSTRAINT 입니다. 모든 조인 정책은 서명 및 반환 유형이 동일합니다.

body

SQL 식을 사용하여 조인 정책의 제한을 결정합니다.

조인 정책의 본문을 정의하려면 TRUE 또는 FALSE 를 반환하는 JOIN_CONSTRAINT 함수를 호출합니다. 함수가 TRUE 를 반환하는 경우 쿼리 결과를 반환하려면 조인을 사용해야 합니다.

JOIN_CONSTRAINT 함수의 구문은 다음과 같습니다.

JOIN_CONSTRAINT (
  { JOIN_REQUIRED => <boolean_expression> }
  )
Copy

여기서

JOIN_REQUIRED => boolean_expression

조인 정책이 할당된 테이블 또는 뷰에서 데이터를 선택할 때 쿼리에서 조인이 요구되는지 여부를 지정합니다.

정책 본문은 사용자 정의 함수, 테이블 또는 뷰를 참조할 수 없습니다.

허용되는 조인 열은 정책이 적용되는 테이블 또는 뷰의 CREATE 또는 ALTER 문에 지정되며 CREATE JOIN POLICY 문에는 지정되지 않습니다.

COMMENT = 'string_literal'

조인 정책에 대한 설명을 추가하거나 기존 설명을 덮어씁니다.

액세스 제어 요구 사항

이 작업을 실행하는 데 사용되는 역할 에는 최소한 다음 권한 이 있어야 합니다.

권한

오브젝트

참고

CREATE JOIN POLICY

스키마

스키마의 모든 오브젝트에 대해 작업을 수행하려면 상위 데이터베이스 및 스키마에 대한 USAGE 권한.

지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.

보안 오브젝트 에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여에 대한 일반적인 정보는 액세스 제어의 개요 섹션을 참조하십시오.

조인 정책 DDL 및 권한에 대한 자세한 내용은 조인 정책 관리하기 섹션을 참조하십시오.

사용법 노트

  • 기존 조인 정책을 업데이트하고 정책의 현재 본문을 확인해야 하는 경우 DESCRIBE JOIN POLICY 명령 또는 GET_DDL 함수를 실행하십시오.

  • 메타데이터 관련:

    주의

    고객은 Snowflake 서비스를 사용할 때 개인 데이터(사용자 오브젝트 제외), 민감한 데이터, 수출 통제 대상 데이터 또는 기타 규제 데이터가 메타데이터로 입력되지 않도록 해야 합니다. 자세한 내용은 Snowflake의 메타데이터 필드 섹션을 참조하십시오.

쿼리에 조인을 포함하도록 요구하는 조인 정책을 만듭니다(정책이 해당 쿼리에 표시되는 테이블 및 뷰에 적용되는 경우).

CREATE JOIN POLICY jp1 AS ()
  RETURNS JOIN_CONSTRAINT -> JOIN_CONSTRAINT(JOIN_REQUIRED => TRUE);
Copy

ACCOUNTADMIN 역할이 있는 사용자는 조인 없이 쿼리를 실행할 수 있고 다른 사용자는 조인 쿼리를 실행해야 하는 조인 정책을 만듭니다.

CREATE JOIN POLICY jp2 AS ()
  RETURNS JOIN_CONSTRAINT ->
    CASE
      WHEN CURRENT_ROLE() = 'ACCOUNTADMIN'
        THEN JOIN_CONSTRAINT(JOIN_REQUIRED => FALSE)
      ELSE JOIN_CONSTRAINT(JOIN_REQUIRED => TRUE)
    END;
Copy
OSZAR »