すべてのプロダクト
Search
ドキュメントセンター

Data Lake Formation:データ権限

最終更新日:Jan 12, 2025

Data Lake Formation(DLF)では、データレイク内のデータベース、テーブル、列、および関数に対する権限を設定できます。このトピックでは、さまざまな操作を実行するために必要な権限について説明します。また、所有者と所有者権限の概念を紹介し、権限検証メカニズムについて説明します。

権限管理

権限設定

データカタログに対する権限制御を有効または無効にすることができます。詳細については、「権限の設定」をご参照ください。

背景情報

次の表に、権限を設定する際に指定する必要がある 3 つの要素を示します。

要素

説明

プリンシパル

権限が付与されるユーザーまたはロール。ユーザーは、Alibaba Cloud アカウント、RAM ユーザー、または RAM ロールである必要があります。ロールは、DLF コンソールで作成する必要があります。DLF コンソールでロールを作成する方法の詳細については、「ロール管理」をご参照ください。

プリンシパルは、次のいずれかの形式で指定できます。

  • Alibaba Cloud アカウント: acs:ram::<Alibaba Cloud アカウントのユーザー ID>:root(例: acs:ram::123456:root)。

  • RAM ユーザー: acs:ram::<Alibaba Cloud アカウントのユーザー ID>:user/<RAM ユーザーのユーザー名>(例: acs:ram::123456:user/user_a)。

  • RAM ロール: acs:ram::<Alibaba Cloud アカウントのユーザー ID>:role/<RAM ロールの名前>(例: acs:ram::123456:role/role_a)。

リソース

データレイクで管理されるリソース。

  • データカタログ: データレイクメタデータの最上位エンティティ。複数のデータベースを含めることができます。

  • データベース: データレイクメタデータで管理されるデータベース。

  • テーブル: データレイクメタデータで管理されるテーブル。

  • 列: データレイクメタデータで管理される列。

  • 関数: データレイクメタデータで管理される関数。

アクセス

リソースへのアクセスに使用されるメソッド。アクセス方法は、リソースの種類によって異なります。たとえば、データベースは Create Table メソッドと List メソッドをサポートし、テーブルは Select メソッドと Update メソッドをサポートし、列は Select メソッドのみをサポートします。

権限の概要

次の表に、データレイクでサポートされている権限を示します。

リソース

アクセス

説明

カタログ

変更

カタログを変更するための権限。たとえば、これらの権限が付与されたユーザーは、alter catalog <catalog_name> set ... を実行できます。

削除

カタログを削除するための権限。たとえば、これらの権限が付与されたユーザーは、drop catalog <catalog_name> を実行できます。

付与

カタログに対して承認操作を実行するための権限。たとえば、これらの権限が付与されたユーザーは、grant drop on catalog <catalog_name> to ... を実行できます。

データベースの作成

カタログにデータベースを作成するための権限。たとえば、これらの権限が付与されたユーザーは カタログにデータベースを作成します。たとえば、create database <catalog_name>.<database_name> ... を実行できます。

データベース

記述

データベースのメタデータをクエリしたり、データベースを選択したりするための権限。たとえば、これらの権限が付与されたユーザーは、desc database <database_name> ステートメントと use <database_name> ステートメントを実行できます。

変更

データベースを変更するための権限。たとえば、これらの権限が付与されたユーザーは、alter database <database_name> set location '<path>' ステートメントを実行できます。

削除

データベースを削除するための権限。たとえば、これらの権限が付与されたユーザーは、drop database <database> ステートメントを実行できます。

テーブルの作成

データベースにテーブルを作成するための権限。たとえば、これらの権限が付与されたユーザーは、create table <database_name>.<table_name> ... ステートメントを実行できます。

一覧表示

データベースに属するリソースを照会するための権限。たとえば、これらの権限が付与されているユーザーは、show tables ステートメントを実行できます。

重要
  • EMR Sparkエンジンは、データベースに対するList権限の検証をサポートしていません。

  • リソースをユーザー権限に基づいてフィルタリングして表示することはできません。データベースに属するすべてのリソースが表示されます。

テーブル

記述

テーブルのメタデータをクエリするための権限。たとえば、これらの権限が付与されたユーザーは、desc formatted <table_name> ステートメントを実行できます。

変更

テーブルを変更するための権限。たとえば、これらの権限が付与されたユーザーは、alter table <table_name> add columns ... ステートメントと alter table <table_name> drop partition ... ステートメントを実行できます。

削除

テーブルを削除するための権限。たとえば、これらの権限が付与されたユーザーは、drop table <table_name>; ステートメントを実行できます。

選択

テーブルのデータをクエリするための権限。たとえば、これらの権限が付与されたユーザーは、select * from <table_name> ステートメントを実行できます。

更新

テーブルのデータを更新するための権限。たとえば、これらの権限が付与されたユーザーは、insert into table <table_name> ステートメントと delete from <table_name> where ... ステートメントを実行できます。

選択

列のデータをクエリするための権限。たとえば、これらの権限が付与されたユーザーは、select <column_name1>, <column_name2> from <table_name> ステートメントを実行できます。

関数

記述

関数のメタデータをクエリするための権限。

変更

関数に関する情報を変更するための権限。

削除

関数を削除するための権限。

実行

関数を使用または実行するための権限。

所有者権限

所有者の定義

リソースを作成したユーザーは、そのリソースの所有者と呼ばれます。データベースまたはテーブルの所有者情報は、対応する [基本情報] セクションで確認できます。

image

image

  • Alibaba Cloud RAM ユーザーが Data Lake Formation でデータベースまたはテーブルを作成した場合、RAM ユーザーがデータベースまたはテーブルリソースの所有者になります。所有者は、ユーザーに対応する形式で表されます。

  • Linux ユーザーまたは Lightweight Directory Access Protocol(LDAP)ユーザーを使用して EMR エンジンで SQL ステートメントを実行してリソースを作成した場合、Linux ユーザーまたは LDAP ユーザーがリソースの所有者になります。

  • Databricks エンジンは、リソース所有者をサポートしていません。

重要
  • DLF では、RAM ユーザーと Linux ユーザーまたは LDAP ユーザーのユーザー名が同じ場合、リソース所有者として同等です。たとえば、Owner=acs:ram::<Alibaba Cloud アカウントのユーザー ID>:user/user_a と Owner=user_a の設定は同じ効果があります。これにより、付与された権限に基づいて、RAM ユーザーを使用してオープンソースのビッグデータシステムに対する操作を実行できます。

  • Alibaba Cloud アカウントをリソースの所有者として使用する場合、同等の Linux ユーザーまたは LDAP ユーザーは存在しません。Owner=acs:ram::<Alibaba Cloud アカウントのユーザー ID>:root の設定は、Owner=root の設定と同等ではないことに注意してください。

  • RAM ユーザーのユーザー名を表示するには、次の手順を実行します。DLF コンソールにログオンし、左側のナビゲーションペインで [データ権限] > [ユーザー] を選択します。表示されるページで、RAM ユーザーを見つけ、ログオン名をクリックします。EMR エンジンを使用する場合は、RAM ユーザーと同じユーザー名を持つ Linux ユーザーまたは LDAP ユーザーを追加することをお勧めします。ユーザーを追加する方法の詳細については、「ユーザーアカウントの管理」をご参照ください。

所有者権限の定義

リソースの所有者には、そのリソースに対するすべての権限が付与されます。リソースの所有者に付与される権限は、所有者権限と呼ばれます。たとえば、データベースの所有者が user_a の場合、user_a はデータベースの変更やデータベースの削除などの操作を実行できます。

重要

リソースの所有者には、リソースに属するサブリソースに対する権限は付与されません。たとえば、データベースの所有者には、データベースに対する権限のみが付与され、データベース内のすべてのテーブルに対する権限は付与されません。

所有者権限の検証

  • RAM ユーザーとして DLF コンソールにログオンすると、RAM ユーザーとして識別されます。RAM ユーザーまたは RAM ユーザーと同等のユーザーによって作成されたリソースに対する所有者権限が自動的に付与されます。

  • EMR エンジンを使用してデータレイク内のメタデータにアクセスすると、Linux ユーザーまたは LDAP ユーザーとして識別されます。Linux ユーザーまたは LDAP ユーザー、あるいはそれと同等のユーザーによって作成されたリソースに対する所有者権限が自動的に付与されます。

  • Databricks エンジンは、所有者権限の検証をサポートしていません。

サポートされているコンピューティングエンジン

次の表に、さまざまな EMR バージョンで DLF によってサポートされているコンピューティングエンジンを示します。

サポートされているコンピューティングエンジン

    • 次の表に、さまざまな EMR バージョンで DLF によってサポートされているコンピューティングエンジンを示します。

    EMR バージョン

    Hive

    Spark

    Presto

    Impala

    EMR V3.X

    EMR V3.39.0 以前

    サポートされていません

    サポートされていません

    サポートされていません

    サポートされていません

    EMR-3.40.0

    サポートされています

    サポートされています

    サポートされています

    サポートされていません

    EMR V3.41.0 ~ EMR V3.43.1

    サポートされています

    サポートされています

    サポートされていません

    サポートされていません

    EMR V3.44.0 以降 (計画中)

    サポートされています

    サポートされています

    サポートされています

    サポートされています

    EMR V5.X

    EMR V5.5.0 以前

    サポートされていません

    サポートされていません

    サポートされていません

    サポートされていません

    EMR-5.6.0

    サポートされています

    サポートされています

    サポートされています

    サポートされていません

    EMR V5.7.0 ~ EMR V5.9.1

    サポートされています

    サポートされています

    サポートされていません

    サポートされていません

    EMR V5.10.0 以降 (計画中)

    サポートされています

    サポートされています

    サポートされています

    サポートされています