Unity Catalog オブジェクトの所有権を管理する

内の セキュリティ保護可能な各オブジェクト には所有者がいます。Unity Catalog所有者は、ユーザー、サービスプリンシパル、またはアカウント グループなど、任意のプリンシパルにすることができます。 オブジェクトを作成するプリンシパルが、その初期所有者になります。 オブジェクトの所有者は、他のプリンシパルに権限を付与する権限に加えて、テーブルに対する SELECTMODIFY など、オブジェクトに対するすべての権限を持っています。 オブジェクトの所有者は、オブジェクトをドロップできます。

所有者権限

オブジェクトの所有者には、そのオブジェクトに対するすべての権限が自動的に付与されます。 さらに、オブジェクト所有者は、オブジェクト自体とそのすべての子オブジェクトに対する特権を付与できます。 つまり、スキーマの所有者は、スキーマ内のテーブルに対するすべての権限を自動的に付与するわけではありませんが、スキーマ内のテーブルに対する権限を自分自身に付与できます。

注:

所有者がオブジェクトに対するすべての権限を持つというルールには 1 つの例外があります。偶発的なデータ流出を避けるために、スキーマの所有者はデフォルトでは EXTERNAL USE SCHEMA 権限を持っていません。 「Unity Catalog のデータへの外部アクセスの制御」を参照してください。

メタストアとカタログの所有権

メタストア管理者は、メタストアの所有者です。 メタストア管理者ロールは省略可能です。 メタストア管理者は、メタストア管理者ロールを転送することで、メタストアの所有権を再割り当てできます (「 メタストア管理者の割り当て」を参照)。

ワークスペースが Unity Catalog に対して自動的に有効になっている場合、ワークスペースはデフォルトでメタストアに接続され、メタストア内にワークスペース用のワークスペース カタログが作成されます。 ワークスペース管理者はデフォルトの所有者であり、ワークスペース カタログの所有権を再割り当てできます。 これらのワークスペースでは、デフォルトではメタストア管理者は割り当てられていませんが、アカウント管理者は必要に応じてメタストア管理者ロールを付与できます。 「メタストア管理者」を参照してください。

Unity Catalogの管理者権限の詳細については、 Unity Catalogの管理者権限」を参照してください。

オブジェクトの所有者の表示

オブジェクトの所有者を表示するには、カタログ エクスプローラーまたは SQL ステートメントを使用できます。

必要な権限: オブジェクトに対する BROWSE 権限を持つユーザー、またはオブジェクトの親は、オブジェクトの所有者を表示できます。

  1. Databricksワークスペースで、カタログ アイコンカタログ

  2. カタログ、スキーマ、テーブル、ビュー、ボリューム、外部ロケーション、ストレージ資格情報などのオブジェクトを選択します。

    オブジェクトへの移動方法は、オブジェクトによって異なります。 カタログ、スキーマ、およびスキーマの内容 (テーブルやボリュームなど) は、左側の [カタログ ] ウィンドウで選択できます。 外部ロケーションやDelta Sharingなどの他のオブジェクトは、歯車アイコンカタログ ペインの上にある歯車アイコンをクリックし、メニューからオブジェクト カテゴリを選択します。

    ほとんどのオブジェクトの場合、所有者はオブジェクトの詳細ページの[概要]タブに表示されます。 外部場所などの一部のオブジェクトの場合、オブジェクトの詳細ページの上部に表示されます。

ノートブックまたは SQL クエリ エディターで次の SQL コマンドを実行します。 プレースホルダーの値を置き換えます。

  • <securable-type>: セキュリティ保護可能なリソースのタイプ ( CATALOGTABLEなど)。

  • <catalog>: スキーマまたはスキーマの内容を表示している場合の親カタログ。

  • <schema>: テーブルやビューなどのスキーマの内容を表示している場合は、親スキーマ。

  • <securable-name>: セキュリティ保護可能なオブジェクトの名前。

DESCRIBE <securable-type> EXTENDED <catalog>.<schema>.<securable-name>;

オーナー権限の譲渡

オブジェクトの所有者を表示するには、カタログ エクスプローラーまたは SQL ステートメントを使用できます。

必要なアクセス許可: 現在の所有者、メタストア管理者、またはコンテナーの所有者 (スキーマのカタログ、テーブルのスキーマ) である場合は、オブジェクトの所有権を譲渡できます。 Delta Sharing 共有オブジェクトは例外です。 USE SHAREおよびSET SHARE PERMISSION権限を持つプリンシパルも共有所有権を譲渡できます。

注:

権限昇格を防ぐために、ビュー、関数、またはモデルの所有権をアカウント内の任意のユーザー、サービスプリンシパル、またはグループに譲渡できるのは、metstore管理者のみです。 現在の所有者は、所有権を自分のユーザー名または自分がメンバーであるグループに移すことに制限されています。

  1. Databricksワークスペースで、カタログ アイコンカタログ

  2. カタログ、スキーマ、テーブル、ビュー、外部ロケーション、ストレージ資格情報などのオブジェクトを選択します。

    オブジェクトへの移動方法は、オブジェクトによって異なります。 カタログ、スキーマ、およびスキーマの内容 (テーブルやボリュームなど) は、左側の [カタログ ] ウィンドウで選択できます。 外部ロケーションやDelta Sharingなどの他のオブジェクトは、歯車アイコンカタログ ペインの上にある歯車アイコンをクリックし、メニューからオブジェクト カテゴリを選択します。

    ほとんどのオブジェクトの場合、所有者はオブジェクトの詳細ページの[概要]タブに表示されます。 外部場所などの一部のオブジェクトの場合、オブジェクトの詳細ページの上部に表示されます。

  3. 編集アイコン所有者 の横にある 編集アイコンをクリックします。

  4. グループ、ユーザー、またはサービスを検索して選択します。

  5. [保存]をクリックします。

ノートブックまたは SQL クエリ エディターで次の SQL コマンドを実行します。 プレースホルダーの値を置き換えます。

  • <securable-type>: セキュリティ保護可能なオブジェクトのタイプ ( CATALOGTABLEなど)。 METASTORE は、このコマンドのセキュリティ保護可能なオブジェクトとしてサポートされていません。

  • <securable-name>: セキュリティ保護可能なリソースの名前。 スキーマまたはスキーマの内容を変更する場合は、親カタログやスキーマを既に指定していない限り、完全な 3 レベルの名前空間(catalog.schema.object)を使用する必要があります。

  • <principal> ユーザー、サービスプリンシパル (applicationId 値によって表される)、またはグループです。 特殊文字を含むユーザー名、サービスプリンシパル名、およびグループ名はバッククォート ( ` ` ) で囲む必要があります。 「 プリンシパル」を参照してください。

ALTER <securable-type> <securable-name> OWNER TO <principal>;

たとえば、 ordersテーブルの所有権をaccountingグループに譲渡するには、次のようにします。

ALTER TABLE mycatalog.myschema.orders OWNER TO `accounting`;