ALTER SHARE

ALTER SHARE

기존 공유(share)의 속성을 수정하는 명령이에요:

  • 계정 목록에 계정을 추가하거나 제거해요.
  • 공유에 해당하는 데이터베이스를 공유할 새 계정 목록을 설정해요.
  • 기타 속성을 수정해요. 매개변수 자세한 내용은 매개변수를 참고하세요.

출처: 문서

본문

참고: 프로바이더 공유가 모든 계정에 활성화되어 있지는 않아요. 프로바이더 공유는 대부분의 계정에서 기본적으로 활성화되어 있지만 일부 계정에서는 아니에요. 소비자와 데이터 공유를 시도할 때 오류가 발생하면 이 기능이 계정에서 활성화되지 않았을 수 있어요. 활성화 문의는 Snowflake Support에 연락하세요.

관련 명령: CREATE SHARE, DROP SHARE, DESCRIBE SHARE, SHOW SHARES

구문 (Syntax)

ALTER SHARE [ IF EXISTS ] <name> { ADD | REMOVE } ACCOUNTS = <consumer_account> [ , <consumer_account> , ... ]
                                        [ SHARE_RESTRICTIONS = { TRUE | FALSE } ]

ALTER SHARE [ IF EXISTS ] <name> SET { [ ACCOUNTS = <consumer_account> [ , <consumer_account> ... ] ]
                                       [ COMMENT = '<string_literal>' ] }

ALTER SHARE [ IF EXISTS ] <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]

ALTER SHARE <name> UNSET TAG <tag_name> [ , <tag_name> ... ]

ALTER SHARE [ IF EXISTS ] <name> UNSET COMMENT

매개변수 (Parameters)

name — 수정할 공유의 식별자를 지정해요. 식별자에 공백이나 특수 문자가 포함되어 있으면 전체 문자열을 큰따옴표로 묶어야 해요. 큰따옴표로 묶은 식별자는 대소문자를 구분해요.

ADD | REMOVE ACCOUNTS = consumer_account [ , consumer_account , ... ] — 공유의 계정 목록에 추가하거나 제거할 계정 이름을 지정해요:

  • 이미 목록에 있는 공유에 계정을 추가해도 효과가 없어요.
  • 이미 공유 데이터베이스를 가져온 계정을 제거하면 해당 계정의 데이터베이스 접근이 즉시 취소돼요. 계정을 나중에 공유에 다시 추가하면 사용 전에 데이터베이스를 다시 만들어야 해요.
  • 공유 계정 목록에 없던 계정을 공유에서 제거해도 효과가 없어요.

이 매개변수는 공유의 기존 계정 목록에 추가(또는 제거)해요. 전체 목록을 교체하려면 대신 SET을 사용해요.

SHARE_RESTRICTIONS = { TRUE | FALSE }FALSE는 Standard 또는 Enterprise 소비자 계정을 Business Critical 프로바이더 계정의 공유에 추가할 수 있게 하고, HIPAA 미준수 소비자 계정을 HIPAA 준수 프로바이더 계정의 공유에 추가할 수 있게 해요. TRUE는 이런 추가를 허용하지 않아요.

기본값: TRUE

중요: Business Critical 프로바이더 계정의 공유에 새 비(Business Critical) 소비자 계정을 추가할 때마다, 또는 HIPAA 준수 프로바이더 계정의 공유에 새 비-HIPAA 소비자 계정을 추가할 때마다 이 매개변수를 설정해야 해요. 자세한 내용은 직접 공유 제한을 참고하세요.

SET ...

ACCOUNTS = consumer_account [ , consumer_account ... ] — 공유가 공유됐던 이전 모든 계정을 대체할 계정을 지정해요. 목록에서 개별 계정을 추가/제거하려면 ADD | REMOVE를 대신 사용해요.

TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]태그 이름과 태그 문자열 값을 지정해요.

태그 값은 항상 문자열이며, 최대 문자 수는 256이에요. 문에서 태그를 지정하는 방법은 태그 할당량을 참고하세요.

COMMENT = 'string' — 공유의 주석을 추가하거나 기존 주석을 덮어써요.

UNSET ... — 공유에서 해제할 하나 이상의 속성/매개변수를 기본값으로 되돌려요:

  • TAG tag_name [ , tag_name ... ]
  • COMMENT

사용 메모 (Usage notes)

  • 공유를 변경하려면 다음 권한 중 하나가 필요해요:
    • 공유를 만든 역할에 부여되는 OWNERSHIP 권한.
    • MANAGE SHARE TARGET 권한은 공유에서 계정을 추가하거나 제거할 수 있는 역할을 결정해요. MANAGE SHARE TARGET이 부여된 역할만 공유 계정 접근을 추가하거나 제거할 수 있어요.
  • ACCOUNTACCOUNTS 키워드는 모두 지원되며 서로 바꿔 사용할 수 있어요.
  • 메타데이터 관련: Snowflake 서비스를 사용할 때 메타데이터로 개인 데이터(User 객체 외), 민감한 데이터, 수출 통제 데이터 또는 기타 규제 대상 데이터를 입력하지 않도록 주의해야 해요. 자세한 내용은 Snowflake의 메타데이터 필드를 참고하세요.

예시 (Examples)

sales_s라는 기존 공유에 두 계정을 추가해요.

ALTER SHARE sales_s ADD ACCOUNTS=<orgname.accountname1>,<orgname.accountname2>;

+----------------------------------+
| status                           |
|----------------------------------|
| Statement executed successfully. |
+----------------------------------+

sales_s에서 계정 <orgname.accountname>을 제거해요.

ALTER SHARE sales_s REMOVE ACCOUNT=<orgname.accountname>;

+----------------------------------+
| status                           |
|----------------------------------+
| Statement executed successfully. |
+----------------------------------+

역할에 MANAGE SHARE TARGET을 부여하고 그 역할로 공유 대상을 관리해요.

GRANT MANAGE SHARE TARGET ON ACCOUNT TO ROLE <role_name>;

GRANT ROLE <role_name> TO USER <user_name>;

USE ROLE <role_name>;

ALTER SHARE <data_share_name> ADD ACCOUNTS = <orgname.accountname1>,<orgname.accountname2>;

sales_s에 새 주석을 설정해요.

ALTER SHARE sales_s SET COMMENT='This share contains sales data for 2017';

+----------------------------------+
| status                           |
|----------------------------------|
| Statement executed successfully. |
+----------------------------------+

더 알아보기 (Learn more)