专用笔记本

简介

在 Snowsight 中,您可以创建用户所有的专用笔记本。此专用笔记本存储在您的个人数据库中:一个专用的工作区,您可以在其中创建、修改和管理专用笔记本。与基于角色的所有权不同,个人数据库中的对象归个人用户所有。用户个人数据库的生命周期与用户息息相关。例如,如果在 Snowflake 账户中删除用户,则其个人数据库也会被删除。您可以在个人数据库中创建专用笔记本,无需等待他人授予适当权限。

个人数据库以表单 USER$username 中的用户名命名(例如 USER$JOHNDOE)。您也可以用前缀 USER$ 来进行引用。您可以在 Data » Databases 中查看个人数据库的详细信息。

专用笔记本可以执行以下任务:

  • 私下以交互方式开发代码并尝试数据和模型。

  • 通过将笔记本从个人数据库复制到常规的非个人数据库来部署这些项目。

有关专用笔记本先决条件的详细信息,请参阅 使用专用笔记本的先决条件

有关创建专用笔记本的详细信息,请参阅 创建新笔记本

激活专用笔记本用户的所有次要角色

在创建专用笔记本之前,必须先启用次要角色。这是因为专用笔记本归用户所有,而非其主要角色。

2024_07 BCR 捆绑包(默认启用)启用了所有次要角色,但如果账户管理员禁用该捆绑包,则您必须:

要在默认情况下激活用户的所有次要角色,用户或管理员可以使用 ALTER USER 命令将该用户的 DEFAULT_SECONDARY_ROLES 对象属性设置为 ('ALL')

例如,默认情况下,管理员可以执行以下 SQL 语句来激活用户的所有次要角色:

ALTER USER my_user SET DEFAULT_SECONDARY_ROLES = ('ALL');
Copy

管理员执行上述 SQL 语句后,用户可以在 Snowsight 中选择“Projects » Notebooks”或在新工作表中执行 SQL 命令,以此来创建专用笔记本。

要在现有工作表中执行 SQL 命令的用户必须在创建专用笔记本前执行以下 SQL 语句:

USE SECONDARY ROLES ALL;
Copy

专用笔记本限制

  • 无法计划专用笔记本。

个人数据库限制

  • 用户只能在个人数据库中创建专用笔记本和架构。例如,无法创建和加载表。

  • 用户无法更改、克隆或复制其个人数据库。

  • 用户无法在个人和非个人数据库间移动架构。

  • 管理员不能将个人数据库添加到复制组以进行复制。

  • 用户无法将个人数据库添加到原生应用程序(应用程序包)。

  • 用户和管理员无法删除和/或重命名 USER$.PUBLIC 架构。

  • 协作限制:

    • 管理员无法创建数据库角色。

    • 用户和管理员无法向其他人授予其架构的任何 CREATE <object> 权限。

    • 用户无法将其对象的权限授予共享或应用程序包。

    • 用户无法将其个人数据库的 REFERENCE_USAGE 权限授予共享或应用程序包。

    • 用户无法将个人数据库添加到共享中(以实现跨账户共享)。

整理专用笔记本

您可以创建和使用架构,作为整理专用笔记本的一种方式。默认情况下,个人数据库包含名为 PUBLIC 和 INFORMATION_SCHEMA 的标准架构。

以通常的方式创建和使用新架构,但确保在创建架构时使用您的个人数据库。例如:

USE DATABASE USER$bobr;
CREATE SCHEMA bobr_schema;
USE SCHEMA bobr_schema;
Copy

您也可以对个人数据库中的架构使用 ALTER SCHEMA 命令,并可使用 SHOW SCHEMAS 命令来查看属于个人数据库的架构。例如:

ALTER SCHEMA bobr_schema RENAME TO bobr_personal_schema;
SHOW TERSE SCHEMAS;
Copy
+-------------------------------+----------------------+------+---------------+-------------+
| 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';
Copy
Notebook BOBR_PROD_NOTEBOOK successfully created.

您也可以使用在生产数据库中创建的笔记本来创建专用笔记本。

备注

您无法通过 Snowsight 用户界面完成此任务;必须使用明确的 SQL 命令(例如,在笔记本的 SQL 单元格中或工作表中)。

查看有关专用笔记本和个人数据库的信息

个人用户可以使用 Snowsight 来查看有关笔记本的信息。前往 Projects » Notebooks。笔记本的所有者被列为用户。

有关数据库(包括个人数据库)的信息,请访问 Data » Databases。您可以轻松查看哪些数据库是个人数据库,因为个人数据库有 USER$ 前缀。

您还可以使用以下 SHOW 和 DESCRIBE 命令来查看有关这些个人数据库中的专用笔记本、个人数据库和架构的信息:

备注

目前,管理员无法看到属于其他用户的专用笔记本对象。

例如,描述一个专用笔记本:

DESCRIBE NOTEBOOK USER$.PUBLIC.bobr_private_notebook;
Copy

例如,显示有关一个或多个专用笔记本的信息:

SHOW NOTEBOOKS;
Copy
SHOW NOTEBOOKS LIKE 'bobr_private_notebook';
Copy

例如,显示当前用户的个人数据库:

SHOW DATABASES LIKE 'USER$BOBR';
Copy

对于个人数据库,kind 列中的值为 PERSONAL DATABASE

语言: 中文