4.4 Hadoop認可: ファイル・レベル・アクセスおよびApache Sentry

ソース・データにアクセスできるかどうかは、ソース・ファイルに対する基礎となるアクセス権限と、Apache Sentryによって定義されているHive認可ルールの両方に基づきます。Oracle Big Data SQL外部表を移入するには、デフォルトのoracleユーザーまたは実際に接続しているユーザー(マルチユーザー認可を使用している場合)のいずれかが、ソース・データまたはHiveメタデータ(あるいはその両方)を読み取る権限を持っている必要があります。

Hadoopのデータ・ファイルへのアクセスは、POSIX権限モデル(Linuxで使用されるモデル)と非常によく似ています。各ファイルおよびディレクトリには、関連する所有者とグループがあります。ファイルとディレクトリの権限ビットは、その情報にアクセスできるユーザーを決定するために使用されます。

Apache Sentryは、Hiveメタデータに使用されるロール・ベースの認可エンジンです。Sentryロールは、様々なデータ・アクセス・ニーズに応じて定義されます(たとえば、財務ロールやマーケティング・ロールなど)。オブジェクト(サーバー、Hiveデータベース、表および列)へのアクセス権が特定のロールに付与されます。これにより、ユーザーは、所属するグループに適切な権限が付与されていれば、これらのデータ・オブジェクトを表示できるようになります。

Oracle Big Data SQLでは、ファイル・レベルの認可のサポートに加えて、Sentryもサポートされています。ユーザーがOracle Big Data SQL外部表を列レベルまで問い合せようとすると、Sentryポリシー・ルールが処理されます。つまり、Oracle Databaseで認可ルールをレプリケートする必要がありません。Oracle外部表から選択する権限をユーザーに付与できます。ただし、Hadoop認可を使用すると、ユーザーがデータを参照できるのは、そのユーザーが適切なSentryロールとデータ・アクセス権限を持っている場合にかぎられます。