Universal Search에서 데이터베이스 오브젝트를 검색 가능하게 만들기¶
Universal Search는 계정에서 데이터베이스 오브젝트를 검색하는 데 도움이 됩니다. 기본적으로, 이미 액세스 권한이 부여된 오브젝트만 검색할 수 있습니다. Snowflake 조직 내에서 여러 계정에 대한 액세스 권한이 있더라도 액세스 권한 부여는 여러 계정 간에 적용되지 않으므로 로그인한 계정 외부의 오브젝트를 볼 수 없습니다.
관리자는 오브젝트 가시성을 관리하여 사용자가 Snowflake 조직 내의 다른 계정에 있는 오브젝트를 포함하여 아직 액세스 권한이 없는 오브젝트를 검색할 수 있도록 할 수 있습니다.
참고
사용자가 검색을 수행하지만 오브젝트에 액세스할 권한이 없는 경우 :ui:`Request Access`를 선택하여 연락처 정보를 확인할 수 있도록 :ref:`오브젝트를 연락처 정보와 연결<label-contacts_associate>`할 수 있습니다.
OBJECT_VISIBILITY 속성¶
OBJECT_VISIBILITY 속성은 계정에서 오브젝트의 검색 가능성을 제어하여 명시적 액세스 권한이 없는 사용자가 오브젝트를 찾고 액세스를 요청할 수 있도록 합니다. 계정의 오브젝트에 대한 가시성을 확장하면 협업을 간소화하고 액세스 요청을 간소화할 수 있습니다.
OBJECT_VISIBILITY는 계정, 데이터베이스 또는 스키마에 설정할 수 있으며 Snowflake의 상속 모델을 따릅니다. 즉, 더 높은 수준(예: 계정)에서 설정한 내용을 재정의하지 않는 한, 더 낮은 수준(예: 데이터베이스)에 자동으로 적용됩니다.
OBJECT_VISIBILITY는 다음 값 중 하나로 설정할 수 있습니다.
다음 형식 중 하나로 가시성을 설명하는 YAML 사양:
$$ organization_targets: - all_accounts_including_external $$
Or
$$ organization_targets: - account: <account_name_1> - account: <account_name_2> - ... - organization_user_group: <org_user_group_1> - organization_user_group: <org_user_group_2> $$
위의 구문에서 각 옵션의 의미는 다음과 같습니다.
all_accounts_including_external: 조직의 모든 계정에 있는 모든 사용자가 오브젝트를 볼 수 있도록 지정합니다. 여기에는 외부 당사자에게 액세스 권한이 부여되었을 수 있는 계정(예: 읽기 권한자 계정)을 포함하여 조직 내의 모든 계정이 포함됩니다.account: account_name: 지정된 계정의 모든 사용자가 오브젝트를 볼 수 있도록 지정합니다. 여러 계정을 지정할 수 있습니다. ``account``는 계정 로케이터가 아닌 계정 이름입니다. 조직 이름을 제외하고 계정 이름만 지정해야 합니다.09-22organization_user_group: org_user_group: 지정된 조직 사용자 그룹 조직의 모든 계정에서 오브젝트를 볼 수 있도록 지정합니다.
PRIVILEGED: 오브젝트에 대한 명시적 권한이 부여된 현재 계정 내의 역할만 오브젝트를 볼 수 있도록 지정합니다. 이것이 Snowflake의 기본 동작입니다.
언제든지 오브젝트를 PRIVILEGED 가시성으로 되돌릴 수 있습니다.
특정 구문, 사용법 노트, 예제는 다음 항목을 참조하세요.
CREATE 명령¶
ALTER 명령¶
액세스 제어 요구 사항¶
이 속성을 사용하는 역할에는 최소한 다음 권한이 있어야 합니다.
권한 |
오브젝트 |
참고 |
|---|---|---|
MANAGE VISIBILITY |
계정 |
기본적으로 SECURITYADMIN 역할만 이 권한을 가집니다. 필요에 따라 추가 역할에 권한을 부여할 수 있습니다. |
OWNERSHIP |
데이터베이스 또는 스키마 |
ALTER DATABASE 또는 ALTER SCHEMA 문을 실행하여 오브젝트 가시성을 설정하는 데 필요합니다. OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege). |
지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.
보안 오브젝트 에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여에 대한 일반적인 정보는 액세스 제어의 개요 섹션을 참조하십시오.
예¶
데이터베이스를 광범위하게 표시하기¶
다음 문은 현재 계정(ACME_ENGINEERING)의 모든 사용자에게 product_analytics 데이터베이스가 표시되도록 합니다.
ALTER DATABASE product_analytics
SET OBJECT_VISIBILITY =
$$
organization_targets:
- account: acme_engineering
$$;
다음 문은 조직 내 두 추가 계정(ACME_MARKETING 및 ACME_SALES)의 사용자에게 데이터베이스가 표시되도록 합니다.
ALTER DATABASE product_analytics
SET OBJECT_VISIBILITY =
$$
organization_targets:
- account: acme_engineering
- account: acme_marketing
- account: acme_sales
$$;
다음 문은 ACME 조직 내 모든 계정의 사용자에게 데이터베이스가 표시되도록 합니다.
ALTER DATABASE product_analytics
SET OBJECT_VISIBILITY =
$$
organization_targets:
- all_accounts_including_external
$$;
특정 조직 사용자 그룹에 데이터베이스 표시하기¶
다음 문은 조직 사용자 그룹을 가져온 ACME 조직 내 모든 계정의 특정 조직 사용자 그룹에게 데이터베이스가 표시되도록 합니다.
ALTER DATABASE product_analytics
SET OBJECT_VISIBILITY =
$$
organization_targets:
- organization_user_group: engineering
- organization_user_group: marketing
- organization_user_group: sales
$$;
제한 사항¶
검색 가능하고 액세스할 수 없는 오브젝트는 Universal Search 또는 메타데이터를 표시하는 SQL 명령(SHOW 명령 등)에는 표시되지 않습니다.
스키마의 경우 OBJECT_VISIBILITY 속성을 PRIVILEGED로 설정하여 계정 또는 데이터베이스 수준에서 상속될 수 있는 광범위한 가시성 설정을 재정의함으로써 소유자만 스키마에 액세스할 수 있도록 합니다.
OBJECT_VISIBILITY 속성은 스키마 수준보다 낮게 설정하거나 재정의할 수 없습니다. 스키마 수준에서 사용자는 모든 오브젝트를 보거나 어떤 오브젝트도 보지 못할 수 있습니다.
검색에 오브젝트 가시성 변경 사항이 반영되는 데 몇 시간이 걸릴 수 있습니다.