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이 부여된 역할만 공유 계정 접근을 추가하거나 제거할 수 있어요.
ACCOUNT와ACCOUNTS키워드는 모두 지원되며 서로 바꿔 사용할 수 있어요.- 메타데이터 관련: 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)
- CREATE SHARE — 공유 만들기
- DROP SHARE — 공유 삭제
- SHOW SHARES — 공유 나열