비공개 노트북¶
소개¶
Snowsight 에서 사용자 소유의 비공개 노트북을 만들 수 있습니다. 이 개인 노트북은 개인 데이터베이스에 저장됩니다. 개인 노트북을 만들고 수정하고 관리할 수 있는 전용 작업 공간입니다. 역할 기반 소유권과 달리 개인 데이터베이스 내의 오브젝트는 개별 사용자가 소유권을 갖습니다. 사용자의 개인 데이터베이스의 라이프사이클은 사용자와 동점입니다. 예를 들어, 사용자가 Snowflake 계정에서 삭제되면 해당 사용자의 개인 데이터베이스도 삭제됩니다. 다른 사람이 적절한 권한을 부여할 때까지 기다릴 필요 없이 개인 데이터베이스에 개인 노트북을 만들 수 있습니다.
개인 데이터베이스의 이름은 USER$username
(예: USER$JOHNDOE
) 형식의 사용자 이름을 따서 지정합니다. USER$
라는 접두사를 사용하여 참조할 수도 있습니다. Data » Databases 에서 개인 데이터베이스에 대한 세부 정보를 볼 수 있습니다.
비공개 노트북에서는 다음과 같은 작업을 할 수 있습니다.
비공개로 대화형으로 코드를 개발하고 데이터 및 모델을 실험해 보십시오.
개인 데이터베이스에서 일반 비개인용 데이터베이스로 노트북을 복제해 이러한 프로젝트를 배포하십시오.
비공개 노트북 필수 구성 요소에 대한 자세한 내용은 비공개 노트북 사용을 위한 전제 조건 섹션을 참조하십시오.
비공개 노트북 만들기에 대한 자세한 내용은 새로운 노트북 만들기 섹션을 참고하십시오.
개인 노트북 사용자의 모든 보조 역할 활성화하기¶
비공개 노트북을 생성하려면 먼저 보조 역할을 활성화해야 합니다. 이는 개인 노트북의 주 역할이 아니라 사용자가 소유하고 있기 때문입니다.
2024_07 BCR 번들(기본으로 활성화됨)은 모든 보조 역할을 활성화하지만 계정 관리자가 번들을 비활성화했다면 반드시 사용 설정해야 합니다.
2024_07 또는 2024_08 BCR 번들을 활성화합니다.
사용자에 대해 DEFAULT_SECONDARY_ROLES 오브젝트를
('ALL')
로 설정합니다.
사용자의 모든 보조 역할을 기본적으로 활성화하려면 사용자 또는 관리자가 ALTER USER 명령을 사용하여 해당 사용자에 대한 DEFAULT_SECONDARY_ROLES 오브젝트 속성을 ('ALL')
로 설정하면 됩니다.
예를 들어, 관리자는 다음 SQL 문을 실행하여 사용자의 모든 보조 역할을 기본적으로 활성화할 수 있습니다.
ALTER USER my_user SET DEFAULT_SECONDARY_ROLES = ('ALL');
관리자가 위의 SQL 문을 실행한 후 사용자는 Snowsight 에서 프로젝트 » Notebooks을 선택하거나 새 워크시트에서 SQL 명령을 실행하여 비공개 노트북을 만들 수 있습니다.
기존 워크시트에서 SQL 명령을 실행하려는 사용자는 비공개 노트북을 만들기 전에 다음 SQL 문을 실행해야 합니다.
USE SECONDARY ROLES ALL;
비공개 노트북 제한 사항¶
비공개 노트북은 예약할 수 없습니다.
개인 데이터베이스 제한 사항¶
사용자는 개인 데이터베이스 안에서만 개인 노트북과 스키마를 만들 수 있습니다. 예를 들어, 테이블을 생성하고 로딩할 수 없습니다.
사용자는 개인 데이터베이스를 변경, 복제본 생성 또는 복제할 수 없습니다.
사용자는 개인 데이터베이스와 비개인 데이터베이스 간에 스키마를 이동할 수 없습니다.
관리자는 복제를 목적으로 복제 그룹에 개인 데이터베이스를 추가할 수 없습니다.
사용자는 네이티브 앱(앱 패키지)에 개인 데이터베이스를 추가할 수 없습니다.
사용자 및 관리자는
USER$.PUBLIC
스키마를 삭제하거나 이름을 변경할 수 없습니다.공동 작업 제한:
관리자는 데이터베이스 역할을 만들 수 없습니다.
사용자 및 관리자는 자신의 스키마에 대한
CREATE < 오브젝트>
권한을 다른 사용자에게 부여할 수 없습니다.사용자는 자신의 오브젝트에 대한 권한을 공유 또는 애플리케이션 패키지에 부여할 수 없습니다.
사용자는 개인 데이터베이스에 대한
REFERENCE_USAGE
권한을 공유 또는 패키지에 부여할 수 없습니다.사용자는 공유에 개인 데이터베이스를 추가할 수 없습니다(계정 간 공유 목적).
개인 노트북 조직하기¶
스키마를 만들어서 개인 노트북을 조직하는 수단으로 사용할 수 있습니다. 기본적으로 개인 데이터베이스에는 PUBLIC 및 INFORMATION_SCHEMA 라는 표준 스키마가 포함되어 있습니다.
일반적인 방법으로 새 스키마를 만들고 사용하되, 스키마를 만들 때 개인 데이터베이스를 사용하고 있는지 확인하십시오. 예:
USE DATABASE USER$bobr;
CREATE SCHEMA bobr_schema;
USE SCHEMA bobr_schema;
개인 데이터베이스의 스키마에 대해서는 ALTER SCHEMA 명령을 사용할 수도 있고, 개인 데이터베이스에 속한 스키마를 보려면 SHOW SCHEMAS 명령을 사용할 수도 있습니다. 예:
ALTER SCHEMA bobr_schema RENAME TO bobr_personal_schema;
SHOW TERSE SCHEMAS;
+-------------------------------+----------------------+------+---------------+-------------+
| created_on | name | kind | database_name | schema_name |
|-------------------------------+----------------------+------+---------------+-------------|
| 2024-10-28 19:33:18.437 -0700 | BOBR_PERSONAL_SCHEMA | NULL | USER$BOBR | NULL |
| 2024-10-29 14:11:33.267 -0700 | INFORMATION_SCHEMA | NULL | USER$BOBR | NULL |
| 2024-10-28 12:47:21.502 -0700 | PUBLIC | NULL | USER$BOBR | NULL |
+-------------------------------+----------------------+------+---------------+-------------+
개인 노트북을 일반 사용자가 사용할 수 있도록 설정하기¶
개발 중 어느 시점에 개인 데이터베이스 외부에서 노트북을 다시 만들고 싶을 수도 있습니다. 이 변경을 하려면 CREATE NOTEBOOK 명령을 사용해 원본 노트북을 복제합니다. 이렇게 하면 노트북이 다른 사용자들에게 공개됩니다.
예:
CREATE NOTEBOOK bobr_prod_notebook
FROM 'snow://notebook/USER$BOBR.PUBLIC.bobr_private_notebook/versions/version$1/'
QUERY_WAREHOUSE = 'PUBLIC_WH'
MAIN_FILE = 'notebook_app.ipynb'
COMMENT = 'Duplicated from personal database';
Notebook BOBR_PROD_NOTEBOOK successfully created.
프로덕션 데이터베이스에서 생성한 노트북에서 비공개 노트북을 만들 수도 있습니다.
참고
Snowsight 사용자 인터페이스를 통해서는 이 작업을 완료할 수 없으며, 명시적인 SQL 명령(예: 노트북의 SQL 셀 또는 워크시트)을 사용해야 합니다.
개인 노트북 및 개인 데이터베이스에 대한 정보 보기¶
개인 사용자는 Snowsight 에서 노트북에 대한 정보를 볼 수 있습니다. Projects » Notebooks 로 이동합니다. 노트북의 소유자가 사용자로 목록에 표시됩니다.
개인 데이터베이스를 포함한 데이터베이스에 대한 자세한 내용은 Data » Databases 섹션을 참조하십시오. USER$
접두사가 붙기 때문에 어떤 데이터베이스가 개인 데이터베이스인지 쉽게 알 수 있습니다.
다음 SHOW 및 DESCRIBE 명령을 사용해 개인 노트북, 개인 데이터베이스, 개인 데이터베이스 내부의 스키마에 대한 정보를 볼 수도 있습니다.
참고
현재 관리자는 다른 사용자에게 속한 비공개 노트북 오브젝트를 볼 수 없습니다.
예를 들어, 비공개 노트북을 설명합니다.
DESCRIBE NOTEBOOK USER$.PUBLIC.bobr_private_notebook;
예를 들어, 하나 이상의 비공개 노트북에 대한 정보를 표시합니다.
SHOW NOTEBOOKS;
SHOW NOTEBOOKS LIKE 'bobr_private_notebook';
예를 들어, 현재 사용자의 개인 데이터베이스를 표시합니다.
SHOW DATABASES LIKE 'USER$BOBR';
개인 데이터베이스의 경우 kind
열의 값은 PERSONAL DATABASE
입니다.