专用笔记本

简介

在 Snowsight 中,您可以创建用户所有的专用笔记本。此专用笔记本存储在您的个人数据库中:一个专用的工作区,您可以在其中创建、修改和管理专用笔记本。与基于角色的所有权不同,个人数据库中的对象归个人用户所有。您可以在个人数据库中创建专用笔记本,无需等待他人授予适当权限。

备注

个人数据库的生命周期与其所有者直接相关。如果将用户从 Snowflake 账户中删除,其个人数据库也会被删除。因此,Snowflake 建议不要将个人数据库用于业务关键工作负载或生产工作负载。

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

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

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

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

备注

用户不能在个人数据库中创建表或其他对象。有关限制和约束的完整列表,请参阅 专用笔记本限制

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

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

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

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

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

例如:

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

在用户或管理员执行上述 SQL 语句后,可在 |sf-web-interface|(项目 |ra| 笔记本)或在 工作表中执行 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$ 前缀。

管理员可见性

拥有 MANAGE GRANTS 权限的角色可以查看账户内的所有对象,包括个别用户拥有的个人对象。例如,在默认情况下,ACCOUNTADMIN 等角色可以查看所有数据库,包括个人数据库。这些角色还可以访问个人数据库中有关架构和专用笔记本的详细信息。

管理员可使用 DESCRIBE NOTEBOOK 查看特定专用笔记本的属性:

DESCRIBE NOTEBOOK USER$.PUBLIC.bobr_private_notebook;
Copy

可以使用以下 SHOW 和 DESCRIBE 命令提供有关专用笔记本、个人数据库和这些个人数据库内架构的信息视图:

要从命令输出中排除专用笔记本:

SHOW NOTEBOOKS EXCLUDE PERSONAL OBJECTS;
Copy

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

SHOW DATABASES LIKE 'USER$BOBR';
Copy

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

在 Snowsight 的 Projects » Notebooks 页面上,管理员无法在 Notebooks 列表中看到属于其他用户的专用笔记本对象。

语言: 中文