비보안 뷰에서 데이터 공유하기¶
사용자가 공유하는 뷰에서 쿼리 최적화를 통한 성능 향상을 최대한 활용해야 하는 경우, 다른 계정과 비보안 뷰를 공유할 수 있는 공유를 생성할 수 있습니다.
참고
가능하면 보안 뷰를 사용하여 데이터 보안을 강화하십시오. 보안 오브젝트를 사용하여 데이터 액세스 제어하기 섹션을 참조하십시오.
비보안 오브젝트를 허용하도록 명시적으로 구성된 공유에만 비보안 뷰를 추가할 수 있습니다. 보안되지 않은 함수 등 다른 보안되지 않은 오브젝트는 공유할 수 없습니다. 비보안 뷰 공유의 제한 사항 섹션을 참조하십시오.
비보안 오브젝트를 허용하는 공유 만들기¶
비보안 뷰를 공유하려면 비보안 오브젝트를 허용하는 공유를 생성합니다.
예를 들어 다음을 실행하십시오.
CREATE OR REPLACE SHARE allow_non_secure_views
SECURE_OBJECTS_ONLY=FALSE
COMMENT="Share views that require query optimization";
참고
전체 구문은 이 항목의 비보안 뷰를 공유하기 위한 구문 섹션을 참조하십시오.
뷰 공유를 허용하는 공유를 만든 후 GRANT <권한> … TO SHARE 명령을 사용하여 공유에 보기 권한을 부여합니다. 예를 들어, 이름이 non_secure_view
인 뷰를 공유에 부여하려면 다음을 실행합니다.
GRANT SELECT ON VIEW non_secure_view TO SHARE allow_non_secure_views;
또는 뷰에 대한 SELECT 권한을 데이터베이스 역할에 부여한 다음 해당 데이터베이스 역할을 공유에 부여할 수 있습니다. 예를 들어, 데이터베이스 역할 performance_engineer
에 non_secure_view
뷰에 대한 SELECT 권한을 부여한 다음 공유에 역할을 부여하려면 다음을 실행합니다.
GRANT SELECT ON VIEW non_secure_view TO DATABASE ROLE performance_engineer;
GRANT DATABASE ROLE performance_engineer TO SHARE allow_non_secure_views;
기존 공유를 변환하여 비보안 뷰 공유 허용¶
보안된 뷰가 있는 기존 공유를 비보안된 뷰 공유를 지원하는 공유로 변환할 수 있습니다.
예를 들어, 기존 공유 secure_views_only
를 비보안 뷰 공유를 지원하는 공유로 변환하려면 다음을 수행합니다.
SHOW GRANTS 명령을 사용하여 공유에 부여되는 오브젝트와 공유에 액세스할 수 있는 계정을 각각 결정합니다.
SHOW GRANTS TO SHARE secure_views_only; SHOW GRANTS OF SHARE secure_views_only;
Copy기존 공유를 뷰 공유를 허용하는 공유로 변환:
ALTER SHARE secure_views_only SET SECURE_OBJECTS_ONLY = FALSE, COMMENT = "Convert to allow sharing non-secure views that require query optimization";
Copy선택적으로 기존 보안 뷰를 뷰로 변환합니다. 이 예제에서는
secure_view2
를 비보안 뷰로 변경합니다.ALTER VIEW secure_view2 UNSET SECURE;
Copy
자세한 내용은 공유의 보안 뷰를 비보안 뷰로 변환 섹션을 참조하십시오.
공유의 보안 뷰를 비보안 뷰로 변환¶
기존 보안 뷰를 뷰로 변환하려면 공유에 뷰를 허용하기 전이나 후에 변환할 수 있습니다.
공유의 기존 보안 뷰를 뷰로 변환하려면 다음 사항이 참이어야 합니다.
보안 뷰는 비보안 오브젝트 공유를 허용하도록 구성된 공유에만 부여되어야 합니다.
보안 뷰는 다음 역할에는 부여될 수 없습니다.
비보안 오브젝트의 공유를 허용하지 않는 공유에 부여된 데이터베이스 역할.
비보안 오브젝트의 공유를 허용하지 않는 공유.
예를 들어, 이름이 high_performance_view
인 기존 보안 뷰의 경우 SECURE 속성을 설정 취소합니다.
ALTER VIEW high_performance_view UNSET SECURE;
또는 보안 뷰를 뷰로 다시 생성할 수 있습니다.
CREATE OR REPLACE VIEW high_performance_view WITH COPY GRANTS;
비보안 뷰 공유의 제한 사항¶
뷰를 공유하려면 다음 사항을 고려하십시오.
SECURE_OBJECTS_ONLY 속성이 FALSE로 설정된 공유를 만든 후에는 이 속성을 설정 취소하거나 이 속성을 TRUE로 설정할 수 없습니다.
비보안 뷰만 공유할 수 있습니다. 함수 등 다른 비보안 오브젝트는 공유할 수 없습니다.
비보안 뷰를 공유하기 위한 구문¶
CREATE [ OR REPLACE ] SHARE <name>
[ SECURE_OBJECTS_ONLY = <boolean> ]
[ COMMENT = '<string_literal>' ]
필수 매개 변수¶
name
공유에 대한 식별자를 지정하는데, 공유가 생성된 계정에 대해 고유한 식별자여야 합니다.
또한, 식별자는 알파벳 문자로 시작해야 하며 전체 식별자 문자열을 큰따옴표로 묶지 않는 한 공백이나 특수 문자를 포함할 수 없습니다. 예:
"My object"
. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.식별자 요구 사항에 대한 자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.
선택적 매개 변수¶
SECURE_OBJECTS_ONLY = boolean
공유에 보안 오브젝트만 허용할지, 아니면 비보안 오브젝트도 허용할지 지정합니다.
기본값: true
COMMENT = 'string_literal'
공유에 대한 설명을 지정합니다.
기본값: 값 없음
액세스 제어 요구 사항¶
이 SQL 명령을 실행하는 데 사용되는 역할 에는 최소한 다음 권한 이 있어야 합니다.
권한 |
오브젝트 |
참고 |
---|---|---|
CREATE SHARE |
계정 |
Only the ACCOUNTADMIN role has this privilege by default. The privilege can be granted to additional roles as needed. |
지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.
보안 오브젝트 에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여에 대한 일반적인 정보는 액세스 제어의 개요 섹션을 참조하십시오.
특히 Snowflake Secure Data Sharing의 액세스 제어 요구 사항에 대한 자세한 내용은 ACCOUNTADMIN 외 역할을 사용하여 데이터 공유 작업 수행하기 섹션을 참조하십시오.
사용법 노트¶
SHOW SHARES 를 실행하면 SECURE_OBJECTS_ONLY 속성의 값을 볼 수 없습니다. COMMENT 속성을 사용하여 SECURE_OBJECTS_ONLY 속성의 값을 기록합니다.
CREATE SHARE 에 대한 기존 노트도 적용됩니다.
예¶
비보안 뷰로 공유를 만드는 방법에 대한 예는 비보안 오브젝트를 허용하는 공유 만들기 섹션을 참조하십시오.
ALTER SHARE를 사용하는 경우의 예는 기존 공유를 변환하여 비보안 뷰 공유 허용 섹션을 참조하십시오.