個人用データベース¶
個人用データベースとは¶
個人用データベース(PDB)は、システム所有、ユーザー管理のデータベースインスタンスであり、Snowflakeによって自動的にプロビジョニングされます。ユーザーが独自のデータベースオブジェクトを作成、整理、管理できる専用の個人用ストレージの場所として機能します。
自動プロビジョニングにより、ユーザーは共有データベースを手動で選択したり、アクセスをリクエストしたりする必要がなくなり、専用の開発環境が確保されます。ユーザーがシステムからドロップされると、そのユーザーに関連する PDB とそのすべてのオブジェクトは、自動的に ACCOUNTADMIN 所有権に転送されます。
PDB の利点¶
個人プロジェクトの整理: ユーザーは隔離された環境で自分のプロジェクトを整理でき、共有データベース内の混乱や潜在的な名前の競合を減らします。
簡単な管理者ガバナンス: すべてのファイル関連の開発は、 RBAC によって完全に管理されます。
PDB オブジェクト型¶
現在、 PDBs は、ユーザー専用の開発環境を提供する2つの主要オブジェクト型(ワークスペースとノートブック)をサポートしています。
ワークスペース¶
PDB は、ユーザーが最初に ワークスペース UI を操作するときに作成されます。ワークスペースはファイルベースのエンティティであり、Snowflakeデータベース内のストレージが必要です。
Notebooks¶
PDBs は、 Snowflakeノートブック のマネージドコンピューティングサービスをサポートしています。コード実行を有効にするために、Snowflake管理のサービスオブジェクトが PDB 内に自動的に作成されます。これにより、ノートブックの実行コンテキストは、ユーザーがすでに持つすべてのロールと権限にバインドされます。このオブジェクトは、ワークスペースを Snowpark Container Services ( SPCS )コンピューティングプールに接続するので、開発者は Snowflake Notebooks コードを実行できます。
重要
ユーザーは、コードを実行するサービスを作成するには、関連するコンピューティングプールで USAGE 権限を持っている必要があります。この権限は、 MANAGE GRANTS 権限を持っているロールが付与できます。
セキュリティ¶
PDB のアーキテクチャは意図的に合理化され、最小権限の原則を順守します。これにより、すべての操作がユーザーの既存のセキュリティコンテキストに厳密に制限されます。
新しいデータアクセスなし: PDBs は、データへの新しいアクセスまたは拡張されたアクセス、またはデータ共有の追加機能を導入するものではありません。 ユーザーは、通常のデータベースから PDB にデータを移動することはできません 。
権限コンテキスト: ワークスペース内で実行される任意の SQL クエリは、ユーザーが既に所有しているのとまったく同じロールと権限のセットで実行されます。これは、標準のSnowflakeワークスペースファイルの実行環境を反映しています。
注釈
個人用データベースは個人用シークレットもサポートしています。シークレットオブジェクト はユーザーのみが所有しています。これにより、デフォルトでは、シークレットはプライベートのままになり、ユーザーのみがアクセスでき、意図せずに共有されることはありません。
PDB 管理と可視性¶
管理者は、 PDBs の使用状況を監視し、制御できます。これは、どのロールでもなく、システムによって所有されています。PDB での使用は、割り当てられたユーザーに制限されます。PDB 内のオブジェクトは共有できません。
管理者の可視性¶
MANAGE GRANTS 権限を持つロールは、個々のユーザーが所有する個人オブジェクトを含む、アカウント内のすべてのオブジェクトを表示できます。たとえば、 ACCOUNTADMIN のようなロールはデフォルトで個人用データベースを含むすべてのデータベースを表示できます。これらのロールは、個人データベース内のスキーマとそのオブジェクトの詳細にアクセスすることもできます。
アカウント内のすべての個人データベースの詳細を表示するには、 DATABASES Account Usage ビュー をクエリします。
SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.DATABASES WHERE DATABASE_NAME LIKE 'USER$%';
特定のワークスペースに存在するオブジェクトを表示するには、以下のコードを使用します。
SHOW WORKSPACES IN DATABASE "USER$CMEYER";
特定のユーザーの個人用データベースを表示するには、次のコードを使用します。
SHOW DATABASES LIKE 'USER$BOBR';
個人データベースの場合、
kind列の値はPERSONAL DATABASEです。特定の個人用データベースのオブジェクトを表示するには、次のコードを使用します。
SHOW OBJECTS IN DATABASE "USER$<username>";
オブジェクトを削除する¶
個人用データベースのオブジェクトを削除するには、以下のコードを使用します。
DROP WORKSPACE "USER$JSMITH_DROP_WS_TEST".PUBLIC."drop_this_ws";
コストの考慮事項¶
ユーザーは、 PDBs のテーブルにデータを保存できません。
ストレージコストは、ワークスペースファイルと関連するメタデータのサイズのみを反映します。
制限事項¶
管理者は次のタスクを実行できません。
他のユーザーに属するファイル名またはファイルの内容を表示する。
PDBs のストレージの使用量を表示する。 PDBs は
DATABASE_STORAGE_USAGE_HISTORYに表示されません。各 PDB に使用されるストレージ量を制限する。
PDBs を削除する、または各ユーザーがそれらを使用できないようにする。
新しい PDBs を作成する。新しい PDBs は、ユーザーがワークスペースを作成するとオンデマンドで作成されます。