앱의 실행 파일에 대한 제한된 호출자 권한 부여하기

이 항목에서는 앱의 실행 파일에 제한된 호출자 권한을 부여하는 방법에 대해 설명합니다.

앱에서 소유자의 권한 및 제한된 호출자의 권한 정보

Snowflake Native App 내에서 실행 파일은 소유자 권한 또는 제한된 호출자 권한으로 실행됩니다. Snowflake Native App Framework 의 컨텍스트에서 지원되는 실행 파일 유형은 다음과 같습니다.

  • 앱이 소유한 저장 프로시저

  • 컨테이너가 있는 앱에서 사용 가능한 서비스

소유자의 권리:

소유자의 권한을 사용하는 실행 파일은 실행 파일의 소유자에게 부여된 권한으로 실행됩니다. 기본적으로 앱 내의 실행 파일은 소유자의 권한을 사용합니다. 앱에서 실행 파일의 소유자는 앱 자체입니다.

제한된 호출자의 권한:

호출자 권한 제한은 실행 파일을 호출자의 권한으로 실행할 수 있도록 허용하지만, 실행 파일이 어떤 호출자의 권한으로 실행되는지 제한합니다. 호출자 권한이 제한된 경우, 앱이 소유한 실행 파일은 컨슈머 계정의 관리자가 /sql-reference/sql/grant-caller 명령을 사용하여 명시적으로 허용하지 않는 한 특정 권한으로 실행할 수 없습니다.

앱에 제한된 호출자의 권한을 부여하는 데 필요한 권한

컨슈머로서 앱에 호출자 권한을 부여하려면 ACCOUNTADMIN 역할을 사용하거나 MANAGE CALLER GRANTS 권한이 있는 역할을 사용해야 합니다. 자세한 내용은 GRANT CALLER 섹션을 참조하십시오.

Snowsight 를 사용하여 앱의 실행 파일에 호출자 권한 부여하기

Snowsight 를 사용하여 컨슈머 계정의 오브젝트에 대한 앱에 호출자 권한을 부여할 수 있습니다.

참고

앱에서 호출자 권한을 취소하거나 특정 테이블에 대한 호출자 권한을 부여하는 등의 다른 작업을 수행하려면 적절한 SQL 명령을 사용해야 합니다.

  1. Snowsight 에 로그인합니다.

  2. 탐색 메뉴에서 Data Products » Apps 를 선택합니다.

  3. 앱을 선택합니다.

  4. 도구 모음에서 Settings 아이콘을 클릭한 다음 Privileges 탭을 선택합니다.

  5. 앱이 제한된 호출자 권한을 지원하는 경우 Privileges 탭에 Restricted caller’s rights 섹션이 표시됩니다.

    참고

    공급자가 제한된 호출자의 권한 UI 를 표시하도록 앱을 구성한 경우에만 Snowsight 에서 호출자 권한을 부여할 수 있습니다.

  6. Add grants 를 클릭합니다.

  7. Access scope 를 선택합니다.

    호출자의 권한이 스키마, 데이터베이스 또는 계정 수준에서 적용되는지 여부를 결정합니다. 앱에 불필요한 권한이 부여되지 않도록 가능한 한 범위가 가장 적은 옵션을 선택해야 합니다.

    조심

    계정 수준 범위를 선택할 때는 지원되는 모든 오브젝트 유형에 대해 앱에 대한 호출자의 권한을 부여할 수 있으므로 주의하십시오.

  8. 스키마 또는 데이터베이스 범위를 선택한 경우 요구 사항에 따라 스키마 또는 데이터베이스를 선택합니다.

참고

여러 스키마 또는 데이터베이스를 선택할 수 있습니다. 다른 데이터베이스에서 스키마를 선택할 수도 있습니다.

  1. Next 을 클릭합니다.

  2. 호출자에게 권한을 부여할 오브젝트 유형을 선택합니다.

    검색을 사용하여 오브젝트 유형을 찾습니다. 오브젝트 유형 목록은 위에서 선택한 범위에 따라 달라집니다.

    오브젝트 유형을 선택하면 목록에서 해당 오브젝트의 항목이 각 오브젝트 유형에 대해 사용 가능한 권한으로 확장됩니다.

  3. 부여할 권한을 선택합니다.

    각 오브젝트 유형에 대해 여러 권한을 선택할 수 있습니다. 다른 오브젝트 유형에 대한 권한을 선택할 수도 있습니다.

    참고

    Snowflake는 선택한 모든 오브젝트에 USAGE 권한을 자동으로 부여합니다.

  4. Next 을 클릭합니다.

  5. Grant summary 를 선택하여 선택한 범위, 오브젝트 유형 및 권한을 확인합니다.

    참고

    앞으로 생성되는 선택한 유형의 모든 오브젝트는 선택한 범위와 오브젝트 유형을 사용하여 동일한 권한으로 생성됩니다.

  6. SQL 을 선택하면 Snowsight 가 실행할 GRANT CALLER 명령을 볼 수 있습니다.

    참고

    필요한 경우 이러한 명령을 복사하여 워크시트에서 수동으로 실행할 수 있습니다.

  7. Save 를 클릭합니다.

선택한 범위, 오브젝트 및 권한은 Restricted caller’s rights section 에 표시됩니다.

선택한 권한을 수정하려면 Edit 를 클릭하고 요구 사항에 따라 권한을 선택하거나 선택 해제합니다.

SQL 을 사용하여 앱의 실행 파일에 호출자 권한 부여하기

제한된 호출자 권한을 요청하는 앱을 구성하는 경우 다음 작업을 수행하여 앱에 호출자 권한을 부여하십시오.

  1. 앱 목록을 확인하여 공급자가 앱에 RCR 실행 파일이 있다고 전달했는지 확인합니다.

  2. 목록에 언급된 대로 호출자에게 권한을 부여합니다. 다음 예에서는 GRANT CALLER 명령을 사용하여 특정 데이터베이스 및 스키마의 모든 테이블에 SELECT 권한을 부여하는 방법을 보여줍니다.

    GRANT CALLER USAGE ON DATABASE db1
      TO APPLICATION hello_snowflake_app;
    GRANT CALLER USAGE ON SCHEMA db1.sch1
      TO APPLICATION hello_snowflake_app;
    GRANT INHERITED CALLER SELECT ON ALL TABLES IN SCHEMA db.sch1
      TO APPLICATION hello_snowflake_app;
    
    Copy

    이 명령을 사용하면 호출자 권한이 제한된 실행 파일이 db.sch1 데이터베이스 및 스키마가 있는 모든 테이블의 데이터베이스 쿼리 실행에 액세스할 수 있습니다. 모든 테이블에 SELECT 권한을 부여하는 것 외에 데이터베이스 및 스키마에 USAGE 권한도 부여해야 합니다.