プライベートノートブック

概要

Snowsight では、ユーザー所有のプライベートノートブックを作成できます。このプライベートノートブックは、パーソナルデータベースに保存され、プライベートノートブックの作成、変更、管理ができる専用のワークスペースです。ロールベースの所有権とは異なり、個人データベース内のオブジェクトは個々のユーザーによって所有されます。ユーザーの個人データベースのライフサイクルはユーザーと結びついています。例えば、ユーザーがSnowflakeアカウントで削除された場合、そのユーザーの個人データベースも削除されます。誰かがあなたに適切な権限を与えるのを待つことなく、個人データベースにプライベートなノートブックを作成することができます。

あなたの個人データベースは、 USER$username (例えば、 USER$JOHNDOE)という形であなたのユーザー名にちなんで命名されます。プレフィックス USER$ を付けてリファレンスすることもできます。 Data » Databases で個人データベースの詳細を表示できます。

プライベートNotebooksは以下のタスクを可能にします。

  • プライベートでインタラクティブにコードを開発し、データやモデリングを実験します。

  • これらのプロジェクトは、ノートブックを個人データベースから通常の非個人データベースに複製することで展開します。

プライベートノートブックの前提条件の詳細については、 プライベートノートブックを使用するための前提条件 を参照してください。

プライベートノートブックの作成については、 新しいロールを作成する を参照してください。

プライベートノートブックユーザーのすべてのセカンダリロールのアクティブ化

プライベートノートブックを作成する前に、セカンダリロールを有効にする必要があります。これは、プライベートノートブックがユーザーの所有物であり、ユーザーの主なロールではないからです。

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');
Copy

管理者が上記の SQL ステートメントを実行した後、ユーザーは Snowsight のProjects » Notebooksを選択するか、新しいワークシートで SQL コマンドを実行して、プライベートノートブックを作成することができます。

既存のワークシートで SQL コマンドを実行したいユーザーは、プライベート・ノートブックを作成する前に、次の SQL ステートメントを実行する必要があります。

USE SECONDARY ROLES ALL;
Copy

プライベートノートの制限

  • プライベートノートブックはスケジュールできません。

プライベートデータベースの制限

  • ユーザーがプライベートノートブックやスキーマを作成できるのは、個人データベース内だけです。例えば、テーブルの作成とロードはできません。

  • ユーザーは個人データベースを変更、クローン、複製することはできません。

  • ユーザーは、個人データベースと非個人データベース間でスキーマを移動することはできません。

  • 管理者は、複製を目的として個人データベースを複製グループに追加することはできません。

  • ユーザーは、Native Apps(アプリパッケージ)に個人データベースを追加することはできません。

  • ユーザーおよび管理者は、 USER$.PUBLIC スキーマを削除したり、名前を変更したりすることはできません。

  • コラボレーションの限界:

    • 管理者はデータベース・ロールを作成できません。

    • ユーザーおよび管理者は、自分のスキーマの CREATE <オブジェクト> 権限を他人に与えることはできません。

    • ユーザーは、自分のオブジェクトの権限を共有やアプリケーション・パッケージに付与することはできません。

    • ユーザーは、個人データベース上の 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        |
+-------------------------------+----------------------+------+---------------+-------------+

プライベートNotebooksの一般利用可用性

その開発のある時点で、個人データベースの外にノートブックを再作成したくなるかもしれません。この変更を行うには、 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 を使用して、Notebooksの情報を表示することができます。 Projects » Notebooks に移動します。ノートブックの所有者がユーザーとしてリストされます。

個人データベースを含むデータベースに関する情報は、 Data » Databases してください。どのデータベースが個人用データベースであるかは、 USER$ というプレフィックスがついているのですぐにわかります。

以下の SHOW および DESCRIBE コマンドを使用して、プライベート・ノートブック、パーソナル・データベース、およびそれらのパーソナル・データベース内のスキーマに関する情報を表示することもできます:

注釈

現在、管理者は他のユーザーのプライベートなノートブックオブジェクトを見ることができません。

例えば、プライベートノートについて:

DESCRIBE NOTEBOOK USER$.PUBLIC.bobr_private_notebook;
Copy

例えば、1つまたは複数のプライベートノートブックの情報を表示します。

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

例えば、現在のユーザーの個人データベースを表示します。

SHOW DATABASES LIKE 'USER$BOBR';
Copy

個人データベースの場合、 kind 列の値は PERSONAL DATABASE です。