プライベートノートブック¶
概要¶
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');
管理者が上記の SQL ステートメントを実行した後、ユーザーは Snowsight のProjects » Notebooksを選択するか、新しいワークシートで SQL コマンドを実行して、プライベートノートブックを作成することができます。
既存のワークシートで SQL コマンドを実行したいユーザーは、プライベート・ノートブックを作成する前に、次の SQL ステートメントを実行する必要があります。
USE SECONDARY ROLES ALL;
プライベートノートの制限¶
プライベートノートブックはスケジュールできません。
プライベートデータベースの制限¶
ユーザーがプライベートノートブックやスキーマを作成できるのは、個人データベース内だけです。例えば、テーブルの作成とロードはできません。
ユーザーは個人データベースを変更、クローン、複製することはできません。
ユーザーは、個人データベースと非個人データベース間でスキーマを移動することはできません。
管理者は、複製を目的として個人データベースを複製グループに追加することはできません。
ユーザーは、Native Apps(アプリパッケージ)に個人データベースを追加することはできません。
ユーザーおよび管理者は、
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 |
+-------------------------------+----------------------+------+---------------+-------------+
プライベート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';
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;
例えば、1つまたは複数のプライベートノートブックの情報を表示します。
SHOW NOTEBOOKS;
SHOW NOTEBOOKS LIKE 'bobr_private_notebook';
例えば、現在のユーザーの個人データベースを表示します。
SHOW DATABASES LIKE 'USER$BOBR';
個人データベースの場合、 kind
列の値は PERSONAL DATABASE
です。