공급자 지식 재산 보호하기

이 항목에서는 Snowflake Native App 이 공유하는 오브젝트에 대한 정보를 수정하거나 제거하여 Snowflake Native App Framework 가 공급자 데이터를 보호하는 방법을 설명합니다.

Snowflake Native App Framework 에서의 지식재산권 보호 정보

컨슈머가 Snowflake Native App 을 설치하면 공급자가 애플리케이션 역할을 사용하여 오브젝트에 대한 권한을 부여하지 않는 한 애플리케이션 오브젝트 내의 오브젝트를 볼 수 없습니다.

일반적으로 컨슈머가 스키마와 뷰를 사용하여 오브젝트 메타데이터를 쿼리하거나 Snowsight 를 사용하여 해당 쿼리에 대한 Query Profile 또는 Query History 를 보는 경우 Snowflake Native App Framework 는 애플리케이션 오브젝트 내의 오브젝트에 대한 정보를 수정합니다.

쿼리 프로필에서 수정된 정보

Snowflake Native App Framework 는 다음과 같은 컨텍스트에서 쿼리 프로필 의 정보를 수정합니다.

  • 앱이 설치되거나 업그레이드될 때 실행되는 쿼리입니다.

  • 앱이 소유한 저장 프로시저에서 발생하는 쿼리입니다.

  • 앱이 소유한 안전하지 않은 뷰 또는 함수가 포함된 쿼리입니다.

이러한 각 유형의 쿼리에 대해 Snowsight 는 전체 쿼리 프로필 트리를 표시하는 대신 쿼리 프로필 데이터를 비어 있는 단일 노드로 축소합니다.

쿼리 기록에서 수정된 정보

Snowflake Native App 과 관련된 쿼리의 경우 query_texterror_message 필드는 다음 컨텍스트의 쿼리 기록 에서 수정됩니다.

  • 앱이 설치되거나 업그레이드될 때 실행되는 쿼리.

  • 앱이 소유한 저장 프로시저의 하위 작업에서 발생하는 쿼리.

이러한 각 상황에서 Snowsight 의 쿼리 기록 셀은 공백으로 나타납니다.

SQL 명령 및 뷰에서 수정된 정보

컨슈머가 SHOW 또는 DESCRIBE 명령을 사용하여 애플리케이션 오브젝트 또는 앱이 소유한 오브젝트에 대한 정보를 보는 경우 구현 세부 사항에 대한 정보가 수정됩니다. 예를 들어, 함수 정의 및 함수 본문은 이러한 명령의 출력에서 수정됩니다.

구현 세부 사항에 대한 정보는 다음 컨텍스트의 ACCESS_HISTORY 뷰에서 수정됩니다.

  • 앱이 설치되거나 업그레이드될 때 생성되는 쿼리.

  • 앱이 소유한 저장 프로시저 및 사용자 정의 함수에 의해 생성된 쿼리.

또한 앱이 소유한 뷰의 경우 기본 테이블에 대한 정보가 수정됩니다.

차단된 컨텍스트 함수

애플리케이션 오브젝트 내의 오브젝트와 관련된 정보를 보호하기 위해 Snowflake Native App Framework 는 다음 컨텍스트 함수를 차단합니다.

컨텍스트 함수

공유 콘텐츠에서 차단됨(null 반환)

설정 스크립트와 Snowflake Native App 이 소유한 저장 프로시저 및 UDF에서 차단됨(예외를 발생시킴).

CURRENT_ROLE

CURRENT_ROLE_TYPE

CURRENT_USER

IS_ROLE_IN_SESSION

CURRENT_IP_ADDRESS

CURRENT_AVAILABLE_ROLES

CURRENT_SECONDARY_ROLES

ALL_USER_NAMES

GET_USERS_FOR_COLLABORATION

CURRENT_WAREHOUSE

SYSTEM$ALLOWLIST

공유 콘텐츠 보호하기

공급자 데이터 콘텐츠의 개인 정보와 무결성을 보호하기 위해 Snowflake Native App Framework 는 다음과 같은 제한 사항을 구현합니다.

  • 공유 오브젝트는 애플리케이션 오브젝트와 설치된 Snowflake Native App 에 대해 읽기 전용입니다.

  • 공유 오브젝트는 컨슈머에게 직접 노출되지 않습니다. 오브젝트는 Snowflake Native App 설치 또는 업그레이드 중에 설정 스크립트가 실행될 때 설치된 뷰를 통해서만 노출됩니다.

  • 공급자만 공유 콘텐츠를 업데이트할 수 있습니다.

  • 다음 오브젝트만 애플리케이션 오브젝트 또는 설치된 Snowflake Native App 과 공유할 수 있습니다. 이러한 오브젝트에는 특정 권한이 있어야 합니다.

    • 스키마: 애플리케이션 패키지의 공유 콘텐츠에 USAGE 권한만 부여할 수 있습니다.

    • 테이블: 애플리케이션 패키지의 공유 콘텐츠에 SELECT 권한만 부여할 수 있습니다. 정의된 정책(행 액세스 정책, 마스킹 정책, 태그 기반 정책 등)이 있는 테이블은 공유할 수 없습니다. 컨슈머에게 노출 시 오브젝트에 대해 정책을 정의할 수 있습니다.

    • 뷰: 애플리케이션 패키지의 공유 콘텐츠에 SELECT 권한만 부여할 수 있습니다. 행 액세스, 마스킹, 태그 기반 등을 포함하여 정의된 정책이 있는 뷰는 공유할 수 없습니다.

참고

뷰 또는 뷰가 구성되는 원본이 되는 뷰는 JavaScript, Java, Python 또는 Scala 함수를 포함할 수 없습니다.

자세한 내용은 컨슈머가 공유 오브젝트에 액세스하도록 허용하기 섹션을 참조하십시오.