Unity Catalog オブジェクトの所有権を管理する
Unity Catalog の各 セキュリティ保護可能なオブジェクト には所有者がいます。 所有者は、ユーザー、サービスプリンシパル、またはアカウント グループなど、任意のプリンシパルにすることができます。 オブジェクトを作成するプリンシパルが、その初期所有者になります。 オブジェクトの所有者は、テーブルに対する SELECT
や MODIFY
など、オブジェクトに対するすべての権限に加えて、他のプリンシパルに権限を付与する権限も持ちます。 オブジェクトの所有者は、オブジェクトをドロップする権限を持っています。
所有者の特権
オブジェクトの所有者には、そのオブジェクトに対するすべての権限が自動的に付与されます。さらに、オブジェクトの所有者は、オブジェクト自体とそのすべての子オブジェクトに対する権限を付与できます。つまり、スキーマの所有者は、スキーマ内のテーブルに対するすべての権限を自動的に持つわけではありませんが、スキーマ内のテーブルに対する権限を自分自身に付与できます。
所有者がオブジェクトに対するすべての権限を持つというルールには 1 つの例外があります。偶発的なデータ流出を避けるために、スキーマの所有者はデフォルトでは EXTERNAL USE SCHEMA
権限を持っていません。 「Unity Catalog への外部データ アクセスを有効にする」を参照してください。
メタストアとカタログの所有権
メタストアの管理者はメタストアの所有者です。 メタストア管理者の役割は任意です。 メタストア管理者は、メタストア管理者の役割を移管することで、メタストアの所有権を再割り当てできます。「メタストア管理者を割り当てる」を参照してください。
ワークスペースが自動的に Unity Catalog 有効になっている場合、ワークスペースはデフォルトによってメタストアにアタッチされ、メタストア内のワークスペースのワークスペース カタログが作成されます。 ワークスペース管理者はデフォルトの所有者であり、ワークスペースカタログの所有権を再割り当てできます。 これらのワークスペースでは、デフォルトによって割り当てられたメタストア管理者はいませんが、アカウント管理者は必要に応じてメタストア管理者ロールを付与できます。 「メタストア管理者」を参照してください。
Unity Catalogの管理者権限の詳細については、「Unity Catalogの管理者権限」を参照してください。
所有権と MANAGE
特権
MANAGE
(パブリック プレビュー) は、オブジェクトの所有権に似た特権です。 これにより、ユーザーはオブジェクトに対する権限を編集、削除、および管理できるようになります。 ただし、オブジェクトに対する MANAGE
権限を持つユーザーには、そのオブジェクトに対するすべての権限が自動的に付与されるわけではありません。 他の権限と同様に、ユーザーはオブジェクトの親カタログに USE CATALOG
し、オブジェクトの親スキーマに USE SCHEMA
する必要があります。 たとえば、テーブルに対するパーミッションを付与するには、ユーザーはそのテーブルに対する MANAGE
権限、親カタログに対する USE CATALOG
権限、および親スキーマに対する USE SCHEMA
権限を持っている必要があります。
オブジェクトの所有者は、グループを含む 1 つのプリンシパルにしかなれませんが、 MANAGE
は複数のプリンシパルに付与できます。
誤って権限昇格しないように、 ALL PRIVILEGES
には MANAGE
権限は含まれていません
オブジェクトの所有者を表示する
Catalog Explorer または SQL ステートメントを使用して、オブジェクトの所有者を表示できます。
必要な権限 :オブジェクトの BROWSE
権限を持つユーザーまたはオブジェクトの親であれば、オブジェクトの所有者を見ることができます。
- Catalog Explorer
- SQL
-
In your Databricks workspace, click
Catalog.
-
Select the object, such as a catalog, schema, table, view, volume, external location, or storage credential.
How to navigate to the object depends on the object. Catalogs, schemas, and the contents of schemas (such as tables and volumes) are selectable in the left Catalog pane. You can find other objects, such as external locations or Delta Sharing shares, by clicking the
gear icon above the Catalog pane and selecting the object category from the menu.
For most objects, the owner is displayed on the Overview tab on the object details page. For some objects, such as external locations, it is displayed at the top of the object details page.
Run the following SQL command in a notebook or SQL query editor. Replace the placeholder values:
<securable-type>
: The type of securable, such asCATALOG
orTABLE
.<catalog>
: The parent catalog if you are viewing a schema or the contents of a schema.<schema>
: The parent schema if you are viewing the contents of a schema, such as a table or view.<securable-name>
: The name of the securable object.
DESCRIBE <securable-type> EXTENDED <catalog>.<schema>.<securable-name>;
所有権の譲渡
Catalog Explorer または SQL ステートメントを使用して、オブジェクトの所有者を表示できます。
必要なアクセス許可 : 現在の所有者、メタストア管理者、コンテナーの所有者 (スキーマのカタログ、テーブルのスキーマ)、またはオブジェクトに対する MANAGE
権限を持つユーザーである場合は、オブジェクトの所有権を譲渡できます。 Delta Sharing 共有オブジェクトは例外で、 USE SHARE
権限と SET SHARE PERMISSION
権限を持つプリンシパルも共有所有権を譲渡できます。
特権の昇格を防ぐために、メタストア管理者のみが、ビュー、関数、またはモデルの所有権をアカウント内の任意のユーザー、サービスプリンシパル、またはグループに譲渡できます。 現在の所有者と MANAGE
権限を持つユーザーは、所有権を自分のユーザー名またはメンバーであるグループに移管することに制限されています。
- Catalog Explorer
- SQL
-
In your Databricks workspace, click
Catalog.
-
Select the object, such as a catalog, schema, table, view, external location, or storage credential.
How to navigate to the object depends on the object. Catalogs, schemas, and the contents of schemas (such as tables and volumes) are selectable in the left Catalog pane. You can find other objects, such as external locations or Delta Sharing shares, by clicking the
gear icon above the Catalog pane and selecting the object category from the menu.
For most objects, the owner is displayed on the Overview tab on the object details page. For some objects, such as external locations, it is displayed at the top of the object details page.
-
Click the
edit icon next to the Owner.
-
Search for and select a group, user, or service principal.
-
Click Save.
Run the following SQL command in a notebook or SQL query editor. Replace the placeholder values:
<securable-type>
: The type of securable object, such asCATALOG
orTABLE
.METASTORE
is not supported as a securable object in this command.<securable-name>
: The name of the securable. If you are modifying a schema or the contents of a schema, you must use the complete three-level namespace (catalog.schema.object
), unless you have already specified the parent catalog and/or schema.<principal>
is a user, service principal (represented by its applicationId value), or group. You must enclose users, service principals, and group names that include special characters in backticks (` `
). See Principal.
ALTER <securable-type> <securable-name> OWNER TO <principal>;
For example, to transfer ownership of the orders
table to the accounting
group:
ALTER TABLE mycatalog.myschema.orders OWNER TO `accounting`;