앱의 실행 파일에 대한 제한된 호출자 권한 부여하기¶
이 항목에서는 앱의 실행 파일에 제한된 호출자 권한을 부여하는 방법에 대해 설명합니다.
앱에서 소유자의 권한 및 제한된 호출자의 권한 정보¶
Snowflake Native App 내에서 실행 파일은 소유자 권한 또는 제한된 호출자 권한으로 실행됩니다. Snowflake Native App Framework 의 컨텍스트에서 지원되는 실행 파일 유형은 다음과 같습니다.
앱이 소유한 저장 프로시저
컨테이너가 있는 앱에서 사용 가능한 서비스
- 소유자의 권리:
소유자의 권한을 사용하는 실행 파일은 실행 파일의 소유자에게 부여된 권한으로 실행됩니다. 기본적으로 앱 내의 실행 파일은 소유자의 권한을 사용합니다. 앱에서 실행 파일의 소유자는 앱 자체입니다.
- 제한된 호출자의 권한:
호출자 권한 제한은 실행 파일을 호출자의 권한으로 실행할 수 있도록 허용하지만, 실행 파일이 어떤 호출자의 권한으로 실행되는지 제한합니다. 호출자 권한이 제한된 경우, 앱이 소유한 실행 파일은 컨슈머 계정의 관리자가
/sql-reference/sql/grant-caller
명령을 사용하여 명시적으로 허용하지 않는 한 특정 권한으로 실행할 수 없습니다.
앱에 제한된 호출자의 권한을 부여하는 데 필요한 권한¶
컨슈머로서 앱에 호출자 권한을 부여하려면 ACCOUNTADMIN 역할을 사용하거나 MANAGE CALLER GRANTS 권한이 있는 역할을 사용해야 합니다. 자세한 내용은 GRANT CALLER 섹션을 참조하십시오.
Snowsight 를 사용하여 앱의 실행 파일에 호출자 권한 부여하기¶
Snowsight 를 사용하여 컨슈머 계정의 오브젝트에 대한 앱에 호출자 권한을 부여할 수 있습니다.
참고
앱에서 호출자 권한을 취소하거나 특정 테이블에 대한 호출자 권한을 부여하는 등의 다른 작업을 수행하려면 적절한 SQL 명령을 사용해야 합니다.
Snowsight 에 로그인합니다.
탐색 메뉴에서 Data Products » Apps 를 선택합니다.
앱을 선택합니다.
도구 모음에서 Settings 아이콘을 클릭한 다음 Privileges 탭을 선택합니다.
앱이 제한된 호출자 권한을 지원하는 경우 Privileges 탭에 Restricted caller’s rights 섹션이 표시됩니다.
참고
공급자가 제한된 호출자의 권한 UI 를 표시하도록 앱을 구성한 경우에만 Snowsight 에서 호출자 권한을 부여할 수 있습니다.
Add grants 를 클릭합니다.
Access scope 를 선택합니다.
호출자의 권한이 스키마, 데이터베이스 또는 계정 수준에서 적용되는지 여부를 결정합니다. 앱에 불필요한 권한이 부여되지 않도록 가능한 한 범위가 가장 적은 옵션을 선택해야 합니다.
조심
계정 수준 범위를 선택할 때는 지원되는 모든 오브젝트 유형에 대해 앱에 대한 호출자의 권한을 부여할 수 있으므로 주의하십시오.
스키마 또는 데이터베이스 범위를 선택한 경우 요구 사항에 따라 스키마 또는 데이터베이스를 선택합니다.
참고
여러 스키마 또는 데이터베이스를 선택할 수 있습니다. 다른 데이터베이스에서 스키마를 선택할 수도 있습니다.
Next 을 클릭합니다.
호출자에게 권한을 부여할 오브젝트 유형을 선택합니다.
검색을 사용하여 오브젝트 유형을 찾습니다. 오브젝트 유형 목록은 위에서 선택한 범위에 따라 달라집니다.
오브젝트 유형을 선택하면 목록에서 해당 오브젝트의 항목이 각 오브젝트 유형에 대해 사용 가능한 권한으로 확장됩니다.
부여할 권한을 선택합니다.
각 오브젝트 유형에 대해 여러 권한을 선택할 수 있습니다. 다른 오브젝트 유형에 대한 권한을 선택할 수도 있습니다.
참고
Snowflake는 선택한 모든 오브젝트에 USAGE 권한을 자동으로 부여합니다.
Next 을 클릭합니다.
Grant summary 를 선택하여 선택한 범위, 오브젝트 유형 및 권한을 확인합니다.
참고
앞으로 생성되는 선택한 유형의 모든 오브젝트는 선택한 범위와 오브젝트 유형을 사용하여 동일한 권한으로 생성됩니다.
SQL 을 선택하면 Snowsight 가 실행할 GRANT CALLER 명령을 볼 수 있습니다.
참고
필요한 경우 이러한 명령을 복사하여 워크시트에서 수동으로 실행할 수 있습니다.
Save 를 클릭합니다.
선택한 범위, 오브젝트 및 권한은 Restricted caller’s rights section 에 표시됩니다.
선택한 권한을 수정하려면 Edit 를 클릭하고 요구 사항에 따라 권한을 선택하거나 선택 해제합니다.
SQL 을 사용하여 앱의 실행 파일에 호출자 권한 부여하기¶
제한된 호출자 권한을 요청하는 앱을 구성하는 경우 다음 작업을 수행하여 앱에 호출자 권한을 부여하십시오.
앱 목록을 확인하여 공급자가 앱에 RCR 실행 파일이 있다고 전달했는지 확인합니다.
목록에 언급된 대로 호출자에게 권한을 부여합니다. 다음 예에서는 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;
이 명령을 사용하면 호출자 권한이 제한된 실행 파일이
db.sch1
데이터베이스 및 스키마가 있는 모든 테이블의 데이터베이스 쿼리 실행에 액세스할 수 있습니다. 모든 테이블에 SELECT 권한을 부여하는 것 외에 데이터베이스 및 스키마에 USAGE 권한도 부여해야 합니다.