목록 수정하기

목록 수정하기 (ALTER LISTING)

이 페이지에 나열된 기능에는 추가 이용 약관이 적용될 수 있습니다.

ALTER LISTING

인라인 YAML 매니페스트 또는 스테이지 위치에 있는 파일을 사용하여 listings의 속성을 수정합니다.

ALTER LISTING을 실행하기 전에 DESCRIBE LISTING을 실행하여 listing의 현재 속성을 확인하는 것이 좋습니다.

참조:

CREATE LISTING, DESCRIBE LISTING, SHOW LISTINGS, SHOW VERSIONS IN LISTING, DROP LISTING

출처: 문서

본문

구문

ALTER LISTING [ IF EXISTS ]  [ { PUBLISH | UNPUBLISH | REVIEW } ]

ALTER LISTING [ IF EXISTS ]  AS ''
  [ PUBLISH = { TRUE | FALSE } ]
  [ REVIEW = { TRUE | FALSE } ]
  [ COMMENT = '' ]

ALTER LISTING  ADD VERSION [ [ IF NOT EXISTS ]  ]
  FROM 
  [ COMMENT = '' ]

ALTER LISTING [ IF EXISTS ]  { ADD | REMOVE } TARGETS 

ALTER LISTING [ IF EXISTS ]  RENAME TO ;

ALTER LISTING [ IF EXISTS ]  SET COMMENT = ''

매개 변수

name

변경 중인 리스팅의 식별자(이름)를 지정합니다.

{ PUBLISH | UNPUBLISH | REVIEW }

리스팅에 수행할 작업:

  • PUBLISH 이전에 검색 불가능했던 리스팅을 검색 가능하게 만듭니다.

    이전에 게시된 리스팅에 PUBLISH를 지정하면 아무 효과가 없습니다.

  • UNPUBLISH 이전에 검색 가능했던 리스팅을 새 소비자에게 검색 불가능하게 만듭니다. 기존 소비자는 게시 취소된 리스팅과 연결된 데이터에 계속 접근할 수 있습니다.

    이전에 게시 취소된 리스팅에 UNPUBLISH를 지정하면 아무 효과가 없습니다.

참조: .

  • REVIEW 리스팅을 검토용으로 제출합니다.

yaml_manifest_string

리스팅의 YAML 매니페스트입니다. 매니페스트 매개 변수는 Listing manifest reference를 참조하세요.

매니페스트는 일반적으로 dollar quoted string으로 제공됩니다. 자세한 내용은 를 참조하세요.

ADD VERSION version_name

추가되는 버전의 고유 버전 식별자를 지정합니다. 식별자에 공백, 특수 문자 또는 대소문자가 섞인 문자가 포함된 경우 전체 식별자를 큰따옴표로 묶어야 합니다. 큰따옴표로 묶인 식별자는 대소문자를 구분합니다. 식별자 구문에 대한 자세한 내용은 Identifier Requirements를 참조하세요.

FROM 'yaml_manifest_stage_location'

내부 또는 Snowflake Git repository clone manifest.yml 파일의 경로를 지정합니다. 변경 사항에 Marketplace Ops 검토가 필요한 경우 REVIEWPUBLISH 작업을 사용하세요.

{ ADD | REMOVE } TARGETS manifest

추가하거나 제거하려는 대상 포함하는 매니페스트를 사용하여 리스팅에 대상을 추가하거나 제거합니다. 이 부분 매니페스트는 리스팅 매니페스트 사양에 이미 정의된 익숙한 구조인 targets, external_targets, organization_targets를 재사용합니다.

아래 표는 지원되지 않는 리스팅 매니페스트 / 수신 매니페스트 조합을 보여줍니다.

V2 리스팅은 아직 미리 보기 상태입니다. 기능이 활성화되면 공개 또는 비공개 여부와 관계없이 이후의 모든 리스팅이 V2 리스팅으로 생성됩니다.

외부 리스팅 대상 버전 수신 매니페스트 결과 해결 방법
V1 targets V2 external targets 오류를 반환해요. 버전 1 수신 매니페스트를 제공해요.
V2 targets V1 targets 오류를 반환해요. 버전 2 수신 매니페스트를 제공해요.
모든 외부 리스팅 계정이 없는 조직을 지정하는 조직 수준 대상 오류를 반환해요. 조직 수준 대상은 현재 지원되지 않아요.

조직 리스팅의 경우, 아래 표는 대상 추가 및 제거에 지원되지 않는 사용 사례를 보여줘요.

외부 리스팅 수신 매니페스트 추가 또는 제거 결과 조치
모든 조직 리스팅 매니페스트에 organization_user_group 필드가 설정되어 있어요. 둘 다 오류를 반환해요. organization_user_group 필드를 제거하고 다시 시도해요.
계정 또는 계정 및 역할 매니페스트에 all_internal_accounts 필드가 TRUE로 설정되어 있어요. 제거 오류를 반환해요. 특정 계정을 제거하고 다시 시도해요.
리스팅에 all_internal_accounts 필드가 TRUE로 설정되어 있어요. 수신 매니페스트에 계정 또는 계정 및 역할이 포함되어 있어요. 제거 오류를 반환해요. all_internal_accounts를 특정 계정으로 바꾸고 다시 시도해요.
역할이 지정되지 않은 계정 수신 매니페스트에 역할이 있는 계정이 포함되어 있어요. 제거 오류를 반환해요. 계정을 먼저 제거한 다음 특정 역할을 추가해요.

RENAME TO new_name

리스팅의 이름을 new_name으로 변경해요. 리스팅 이름은 고유해야 해요. 새 식별자가 다른 리스팅에서 이미 사용 중인 경우에는 사용할 수 없어요.

SET ...

리스팅에 설정할 하나 이상의 속성을 지정해요 (공백, 쉼표, 또는 새 줄로 구분해요).

COMMENT = 'string_literal'

기존 리스팅에 주석을 추가하거나 기존 주석을 덮어써요.

PUBLISH = { TRUE | FALSE }


Listing이 게시되는 방식을 지정해요.

TRUE이면, listing이 Marketplace Ops의 검토를 위해 등록되는 즉시 게시돼요.

기본값: TRUE.

REVIEW = { TRUE | FALSE }

Listing이 Marketplace Ops 검토에 제출되어야 하는지 여부를 지정해요.

기본값: TRUE.

PUBLISH 및 REVIEW 속성 값의 다양한 조합은 다음과 같은 동작을 만들어요.

PUBLISH REVIEW 동작
TRUE TRUE 검토를 요청한 후 승인되면 즉시 게시해요.
TRUE FALSE 오류가 발생해요. 검토 없이 %sf-marketplace%에 listing을 게시할 수 없어요.
FALSE TRUE 검토를 요청하되, 검토 후 자동으로 게시하지는 않아요.
FALSE FALSE 검토를 요청하거나 게시하지 않고 listing을 초안으로 저장해요.

사용 참고 사항

  • Listing은 DRAFT 상태에서만 이름을 바꿀 수 있어요.
  • Listing의 YAML 형식 manifest의 라이브 버전을 설정할 때는 변경 사항을 적용하려면 COMMIT을 사용하고, 변경 사항을 취소하려면 ABORT를 사용해야 해요.

접근 제어 요구 사항

이 작업을 실행하는 데 사용되는 role은 최소한 다음 privileges을 보유해야 해요.

Privilege 객체 참고 사항
OWNERSHIP or MODIFY 수정 중인 listing에 대해

ALTER 명령을 사용하여 auto-fulfillment용 manifest 콘텐츠를 수정하는 경우, cross-cloud auto-fulfillment를 구성하는 데 필요한 위임된 privileges를 가진 role을 사용해야 해요. 를 참조하세요.

스키마의 객체를 대상으로 작업하려면 상위 데이터베이스에 대한 privilege가 최소한 하나, 상위 스키마에 대한 privilege가 최소한 하나 필요해요.

지정된 privileges 집합을 가진 사용자 지정 role을 만드는 방법은 을 참조하세요.


securable objects에 대해 SQL 작업을 수행하기 위한 역할 및 권한 부여에 대한 일반 정보는 Overview of Access Control을 참조하세요.

예제

listing mylisting을 업데이트된 매니페스트 파일을 사용하도록 변경합니다:

ALTER LISTING mylisting
AS
$$
title: "MyListing"
subtitle: "Subtitle for MyListing"
description: "Description or MyListing"
listing_terms:
  type: "STANDARD"
targets:
  accounts: ["Org1.Account1"]
usage_examples:
  - title: "this is a test sql"
    description: "Simple example"
    query: "select *"
$$;

listing mylisting을 검토용으로 제출합니다:

ALTER LISTING mylisting REVIEW;

listing mylisting을 게시하여 변경합니다:

ALTER LISTING mylisting PUBLISH;

listing mylisting을 게시 취소하여 변경합니다:

ALTER LISTING mylisting UNPUBLISH;

listing mylisting을 새 주석을 설정하여 변경합니다:

ALTER LISTING mylisting SET COMMENT = 'My listing is ready!';

지정된 YAML 매니페스트 파일 stage 위치에서 새 버전을 추가합니다:

ALTER LISTING mylisting ADD VERSION V3 FROM @dbforstage.public.listingstage/listingmanifests;

대상이 들어오는 매니페스트를 가져와 기존 listing 대상과 병합하도록 listing을 변경합니다:

ALTER LISTING mylisting ADD TARGETS $$manifest$$;

외부 V1 listing에 대상을 추가합니다:

ALTER LISTING mylisting ADD TARGETS
$$
targets:
  accounts: ["Org1.Account1", "Org2.Account2"]
$$;

외부 V2 listing에 대상을 추가합니다:

ALTER LISTING mylisting ADD TARGETS
$$
external_targets:
  access:
    - organization: OrgName2
      accounts: [acc1, acc2]
$$;

대상을 추가할 때, 이는 들어오는 매니페스트를 가져와 기존 organization_targets와 병합합니다.

ALTER LISTING mylisting ADD TARGETS
$$
organization_targets:
  access:
    - account: account2
      roles: [role1, role2]
$$;

대상을 제거합니다:

ALTER LISTING mylisting REMOVE TARGETS $$manifest$$;

외부 V1 listing에서 대상을 제거합니다:

ALTER LISTING mylisting REMOVE TARGETS
$$
targets:
  accounts: ["Org1.Account1", "Org2.Account2"]
$$;

외부 V2 listing에서 대상을 제거합니다:

ALTER LISTING mylisting REMOVE TARGETS
$$
external_targets:
  access:
    - organization: OrgName2
      accounts: [acc1, acc2]
$$;

조직 listing에서 대상을 제거합니다:

ALTER LISTING mylisting REMOVE TARGETS
$$
organization_targets:
  access:
    - account: account1
$$;

더 알아보기 (Learn more)