BUILD_SCOPED_FILE_URL

BUILD_SCOPED_FILE_URL

스테이지 이름과 상대 파일 경로를 입력으로 사용해, 스테이징된 파일에 대한 스코프(제한된) Snowflake 파일 URL을 생성하는 파일 함수예요. 특정 파일에 잠시만 접근을 허용할 때 씁니다.

출처: Snowflake SQL Reference

본문

스코프 URL은 인코딩되어 있고 지정한 파일에 제한된 시간 동안만 접근을 허용해요. 출력의 스코프 URL은 호출자에게 영구 쿼리 결과 기간이 끝날 때까지(결과 캐시가 만료될 때까지) 유효한데, 현재 그 기간은 24시간이에요.

BUILD_SCOPED_FILE_URL(
  @<stage_name> ,
  '<relative_file_path>' ,
  <use_privatelink_host_for_business_critical>)

stage_name — 파일이 저장된 내부 또는 외부 스테이지 이름. 이름에 공백이나 특수문자가 있으면 작은따옴표로 감싸야 해요(예: '"my stage"'라는 스테이지는 '@"my stage"').

relative_file_path — 스테이지 위치를 기준으로 한 파일의 경로와 파일 이름.

use_privatelink_host_for_business_critical — Business Critical 계정의 URL 앞에 privatelink를 붙일지 여부. TRUE면 호스트 이름 바로 앞에 privatelink를 붙여요(예: privatelink.snowflakecomputing.com). 기본값은 TRUE. Snowflake는 private connectivity를 활성화했는지와 무관하게 URL에 privatelink를 붙여요.

반환 형식:

https://<account_identifier>/api/files/<query_id>/<encoded_file_path>
  • account_identifier — 스테이지의 Snowflake 계정 호스트 이름(*account_locator*.snowflakecomputing.com).
  • query_id — 스코프 URL을 생성한 BUILD_SCOPED_FILE_URL 호출의 쿼리 ID.
  • encoded_file_path — 스코프 URL로 접근할 파일의 인코딩된 경로.

사용 메모 — 호출 방식에 따라 요구 권한이 달라져요.

SQL Operation Permissions Required
Query USAGE (외부 스테이지) 또는 READ (내부 스테이지)
뷰의 컬럼 정의 뷰 소유자(OWNERSHIP)가 스테이지 권한(USAGE 또는 READ) 보유. 뷰를 조회하는 역할은 SELECT만 필요
저장 프로시저 프로시저 소유자가 스테이지 권한 보유. 조회 역할은 USAGE만 필요
UDF UDF 소유자가 스테이지 권한 보유. 조회 역할은 USAGE만 필요

REST API에 스코프 URL을 보내는 HTTP 클라이언트는 리다이렉트 허용이 설정되어 있어야 해요. 스코프 URL에 접근하면 쿼리 기록에 내부 GET_SCOPED_FILE 함수가 호출된 것으로 표시돼요. 내부 스테이지에서 내려받은 파일이 손상되었다면 스테이지 생성자에게 스테이지에 ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE')가 설정되어 있는지 확인하세요.

예시 — 외부 스테이지의 비트맵 형식 이미지 파일에 대한 스코프 URL 조회:

SELECT BUILD_SCOPED_FILE_URL(@images_stage,'us/yosemite/half_dome.jpg', TRUE);
https://my_account.snowflakecomputing.com/api/files/019260c2-00c0-f2f2-0000-4383001cf046/bXlfZGF0YWJhc2UvbXlfc2NoZW1hL215X3N0YWdlL2ZvbGRlcjEvZm9sZGVyMi9maWxlMQ

더 알아보기 (Learn more)