チュートリアル: Unity Catalog でテーブルを作成し、権限を付与する
この記事では、Unity Catalog でテーブルを作成し、特権を付与する簡単なチュートリアルを提供します。 これはユーザーを対象としていますが、Unity Catalog の管理を新たに担当する管理者にとっても興味深い場合があります。
すぐに開始するには、この記事の最初のセクションに直接進んでください。 最初に基本的な概念を理解したい場合は、「 Unity Catalog とは」を参照してください。
Unity Catalog の設定と組織の管理を担当する管理者の場合は、「 Unity Catalog の設定と管理」を参照してください。
始める前に
この記事で説明するタスクを実行するには、次のものが必要です。
Unity Catalog に対して有効になっている Databricks ワークスペース。 「 Unity Catalog の設定と管理」を参照してください。
Unity Catalog 準拠のアクセス モードを使用するコンピュートへのアクセス。 SQLウェアハウスはすべて Unity Catalog に準拠しています。 Unity Catalog 準拠のクラスターの詳細については、「 アクセス モード」を参照してください。
Unity Catalog のカタログへのアクセス。 「カタログへのアクセスの確認」を参照してください。
Unity Catalog オブジェクトに対する適切な特権。 これらは、各タスクの冒頭に一覧表示されます。
ワークスペースに追加された他のユーザーとグループ。 「ユーザー、サービス プリンシパル、グループの管理」を参照してください。
カタログへのアクセスを確認する
この記事のチュートリアルを実行するには、Unity Catalog のカタログに対する USE CATALOG
特権と、そのカタログ内のdefault
スキーマに対する USE SCHEMA
と CREATE TABLE
の両方の特権が必要です。カタログは、Unity Catalog の 3 レベルの名前空間の最上位です catalog.schema.table
。
カタログにアクセスできるかどうかを確認するには、次の手順を実行します。
ワークスペースにログインします。
「 カタログ」 をクリックします 。
左側のウィンドウの [カタログ ] で、一覧表示するアクセス許可があるカタログを表示します。
ワークスペースにちなんだ名前の ワークスペース カタログが表示される場合は、「 最初のテーブルを作成し、アクセス許可を管理する (ワークスペース カタログを含むワークスペースの場合)」を参照してください。 メイン カタログが表示される場合は、最初のテーブルを作成し、アクセス許可を管理する (メイン カタログを含むワークスペースの場合) に移動します。
他のカタログに対する適切なアクセス許可があるかどうかを確認するには、左側のウィンドウでカタログ名をクリックして詳細ウィンドウを開き、[ アクセス許可 ] タブを開いてアクセス許可を表示します。 カタログに
USE CATALOG
があり、カタログの既定のスキーマにUSE SCHEMA
とCREATE TABLE
の両方がある場合は、チュートリアル「 最初のテーブルを作成し、アクセス許可を管理する (メイン カタログを含むワークスペースの場合)」を使用できます。
少なくとも 1 つのカタログに USE CATALOG
がない場合は、アカウント管理者に割り当てを依頼してください。 また、カタログのdefault
スキーマに関するUSE SCHEMA
とCREATE TABLE
も求めます。
最初のテーブルを作成し、アクセス許可を管理する (ワークスペース カタログを含むワークスペースの場合)
ワークスペースで Unity Catalog が自動的に有効になっていて、ワークスペースにちなんで名付けられた ワークスペース カタログが含まれている場合は、このチュートリアルを使用します。 「カタログへのアクセスの確認」を参照してください。
Unity Catalog では、SQL または Databricks Explorer UI を使用して、テーブルへのアクセスを宣言によって定義できます。
この例では、ワークスペース カタログとdefault
スキーマ (データベース) に department
という名前のテーブルを作成するノートブックを実行します。このカタログとスキーマは、Unity Catalog に対して自動的に有効になったすべてのワークスペースに対して自動的に作成されます。
必要なアクセス許可: ワークスペース カタログに対するUSE CATALOG
特権と、<workspace-catalog>.default
スキーマに対するUSE SCHEMA
とCREATE TABLE
の両方。ワークスペースの作成時に、すべてのワークスペースユーザーにこれらの権限が付与されます。 この例を完了するには、実行時に付与する権限以外には必要ない。
ノートブックを作成し 、Unity Catalog 準拠のクラスターまたは SQLウェアハウスにアタッチします。 「 はじめに」を参照してください。
ノートブックの言語として
SQL
を選択します。次のコマンドをノートブックに追加して実行します (
<workspace-catalog>
はワークスペース カタログの名前です)。USE CATALOG <workspace-catalog>
CREATE TABLE IF NOT EXISTS default.department ( deptcode INT, deptname STRING, location STRING );
INSERT INTO default.department VALUES (10, 'FINANCE', 'EDINBURGH'), (20, 'SOFTWARE', 'PADDINGTON');
注:
ワークスペース カタログがワークスペースのデフォルト カタログとして設定されている場合、ワークスペース カタログはワークスペースのデフォルト カタログとして定義され、想定されるため、完全な 3 レベルの名前空間 (
<workspace-catalog>.default.department
) またはUSE CATALOG <catalog>
ステートメントを指定する必要はありません。デフォルト・カタログ以外のカタログを参照する場合は、ステートメントでカタログを指定するか、USE CATALOG <catalog>
ステートメントで宣言する必要があります。これで、Unity Catalog にテーブルが作成されました。
カタログエクスプローラーで新しいテーブルを検索します。
サイドバーで [カタログ
<workspace-name>
] をクリックしdefault
、ワークスペース カタログ ( ) と スキーマ ( テーブルがある)department
を参照または検索します。カタログエクスプローラーでデータを参照するために、稼働中のクラスターや SQLウェアハウスは必要ありません。
テーブルに対する権限を付与します。
元のテーブル作成者はテーブル の所有者であり、他のユーザーにテーブルの読み取りまたは書き込みのアクセス許可を付与できます。 所有権を譲渡することもできますが、ここでは行いません。
カタログエクスプローラーのテーブルページで、「 パーミッション」(Permissions ) タブに移動し、「 付与」(Grant) をクリックします。
[Grant on] ダイアログで、次の操作を行います。
アクセス許可を付与するユーザーとグループを選択します。 この例では、 というグループを使用します
data-consumers
。付与する権限を選択します。 この例では、
SELECT
(読み取り) 権限を割り当てて [Grant] をクリックします。
Unity Catalog の特権とアクセス許可モデルの詳細については、「 Unity Catalog での特権の管理」を参照してください。
また、Databricks ノートブックまたは Databricks SQL クエリーエディターで次の SQL ステートメントを使用して、これらのアクセス許可を付与することもできます。
GRANT SELECT ON default.department TO `data-consumers`;
最初のテーブルを作成し、アクセス許可を管理する (メイン カタログを含むワークスペースの場合)
このチュートリアルは、 main
カタログにアクセスできる場合に使用します。 「カタログへのアクセスの確認」を参照してください。
注:
または、このチュートリアルは、カタログに対するUSE CATALOG
と、default
スキーマに対するUSE SCHEMA
とCREATE TABLE
の両方に対するアクセス許可を持つ任意のカタログで使用できます。以下の例では、カタログ名を main
に置き換えてください。
Unity Catalog では、SQL または Databricks Explorer UI を使用して、テーブルへのアクセスを宣言によって定義できます。
この例では、main
カタログとdefault
スキーマ (データベース) に department
という名前のテーブルを作成するノートブックを実行します。このカタログとスキーマは、すべてのメタストアに対して自動的に作成されます。
また、同じタスクを実行する サンプルノートブック を実行することもできます。
必要な権限
このチュートリアルでは、main
カタログに対する USE CATALOG
特権と、main.default
スキーマに対する USE SCHEMA
と CREATE TABLE
の両方が必要です。
デフォルトでは、すべてのアカウントユーザーがmain
でUSE CATALOG
、default
でUSE SCHEMA
します。カタログ所有者に依頼して、デフォルト スキーマの CREATE TABLE
を付与する必要がある場合があります。 メタストア管理者またはカタログ所有者は、Unity Catalog をサポートするノートブックで次のコマンドを使用して、自分自身または任意のユーザーまたはグループに CREATE TABLE
特権を付与できます。
GRANT CREATE TABLE ON SCHEMA main.default TO `<user or group>`;
チュートリアルの説明
ノートブックを作成し 、Unity Catalog をサポートするクラスターにアタッチします。 「 はじめに」を参照してください。
ノートブックの言語として
SQL
を選択します。次のコマンドをノートブックに追加して実行します。
CREATE TABLE IF NOT EXISTS main.default.department ( deptcode INT, deptname STRING, location STRING );
INSERT INTO main.default.department VALUES (10, 'FINANCE', 'EDINBURGH'), (20, 'SOFTWARE', 'PADDINGTON');
これで、Unity Catalog にテーブルが作成されました。
カタログエクスプローラーで新しいテーブルを検索します。
サイドバーで
main
[カタログ ] をクリックしdefault
、ブラウザー (または検索) を使用して、 カタログと スキーマ ( テーブルがある場所)department
を見つけます。カタログエクスプローラーでデータを参照するために、稼働中のクラスターや SQLウェアハウスは必要ありません。
テーブルに対する権限を付与します。
元のテーブル作成者はテーブル の所有者であり、他のユーザーにテーブルの読み取りまたは書き込みのアクセス許可を付与できます。 所有権を譲渡することもできますが、ここでは行いません。
カタログエクスプローラーのテーブルページで、「 パーミッション」(Permissions ) タブに移動し、「 付与」(Grant) をクリックします。
[Grant on] ダイアログで、次の操作を行います。
アクセス許可を付与するユーザーとグループを選択します。 この例では、 というグループを使用します
data-consumers
。付与する権限を選択します。 この例では、
SELECT
権限を割り当てて、「 付与」をクリックします。
Unity Catalog の特権とアクセス許可モデルの詳細については、「 Unity Catalog での特権の管理」を参照してください。
また、Databricks ノートブックまたは Databricks SQL クエリーエディターで次の SQL ステートメントを使用して、これらのアクセス許可を付与することもできます。
GRANT SELECT ON main.default.department TO `data-consumers`;
以下のノートブックの例の 1 つを実行して、カタログとスキーマの作成、使用可能な特権の概要、サンプル クエリーなどを含む、より詳細なチュートリアルを確認してください。