チュートリアル:最初のテーブルを作成して特権を付与する

この記事では、Unity Catalogのデータガバナンスモデルを使用して、Databricksでテーブルを作成し、特権を付与するステップごとの方法を簡単に説明します。2024年3月6日現在、新しいアカウントのワークスペースは自動的に Unity Catalogで有効になり、このチュートリアルを完了するにあたりすべてのユーザーに必要な権限が含まれています。

ワークスペースがUnity Catalogで有効になっているかどうか不明な場合は、「Unity Catalogの設定と管理」を参照してください。Unity Catalogのデータオブジェクトについて詳しく知りたい場合は、「Unity Catalogとは」を参照してください。

この記事はユーザーを対象としていますが、ワークスペース管理を新たに担当する管理者にとっても興味深いかもしれません。

始める前に

この記事で説明されているタスクを実行するには、以下が必要です。

  • Unity Catalogに対して自動的に有効になったDatabricksワークスペース。

  • コンピュートリソースにアタッチする権限。「コンピュートの使用」を参照してください。

最初のテーブルを作成する

Unity Catalogには、データオブジェクト用の3つの階層から成る名前空間、 catalog.schema.table が含まれています。この例では、ワークスペースカタログとdefaultスキーマ(データベース)にdepartmentという名前のテーブルを作成するノートブックを実行します。

注:

ワークスペースカタログとは、ワークスペースで作成されるデフォルトのカタログで、すべてのユーザーがアクセスできます。ワークスペースカタログはワークスペースと共通の名前を持ちます。

SQLまたはDatabricks Explorer UIを使用して、テーブルへのアクセスを宣言的に定義できます。

  1. サイドバーで、[+新規]、[ノートブック] の順にクリックします。

  2. ノートブックの言語として [ SQL ] を選択します。

  3. [接続] をクリックし、ノートブックをコンピュートリソースにアタッチします。

  4. ノートブックに以下のコマンドを追加して実行します(<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');
    
  5. サイドバーで、[カタログアイコン カタログ] を選択し、ワークスペースカタログ(<workspace-name> )と default スキーマを検索すると、新しい department テーブルが見つかります。

カタログエクスプローラーを使用してワークスペースカタログ内のテーブルを検索する

テーブルに対する権限を管理する

元のテーブル作成者はテーブル所有者であるため、テーブルの読み取りや書き込みの権限を他のユーザーに与えることができます。所有権を譲渡することもできますが、ここでは省略します。Unity Catalogの特権と権限モデルの情報については、「Unity Catalogでの権限の管理」を参照してください。

UIを使用して権限を付与する

UIを使用してテーブルに関する権限をユーザーに付与する方法は次の通りです。

  1. カタログエクスプローラーでテーブル名をクリックしてテーブルの詳細ページを開き、[権限] タブに移動します。

  2. [付与] をクリックします。

  3. に付与」ダイアログで次を実行します。

    1. 権限を付与するユーザーとグループを選択します。

    2. 付与する特権を選択します。この例では、 SELECT (読み取り)権限を割り当てて、[付与] をクリックします。

SQLステートメントを使用して権限を付与する

これらの権限は、Databricksノートブックまたは SQLクエリーエディタ内にある次のSQLステートメントを使用して付与することもできます。この例では、data-consumersというグループにテーブルに関する権限を与えています。

GRANT SELECT ON default.department TO `data-consumers`;