SQL Server 2019 ビッグ データ クラスターの HDFS アクセス許可の管理

適用対象: SQL Server 2019 (15.x)

重要

Microsoft SQL Server 2019 ビッグ データ クラスターのアドオンは廃止されます。 SQL Server 2019 ビッグ データ クラスターのサポートは、2025 年 2 月 28 日に終了します。 ソフトウェア アシュアランス付きの SQL Server 2019 を使用する既存の全ユーザーはプラットフォームで完全にサポートされ、ソフトウェアはその時点まで SQL Server の累積更新プログラムによって引き続きメンテナンスされます。 詳細については、お知らせのブログ記事と「Microsoft SQL Server プラットフォームのビッグ データ オプション」を参照してください。

ファイル システムとしての HDFS は、ファイルのアクセス許可に POSIX を使用する Linux ベースのファイル システムに似ています。 従来の POSIX アクセス許可モデルに加えて、HDFS では POSIX アクセス制御リスト (ACL) もサポートされています。 詳細については、Apache Hadoop の ACL に関する記事を参照してください。

次のセクションでは、Azure Data CLI (azdata) を使用して、HDFS ファイルとディレクトリのアクセス許可を管理する方法の例を示します。

前提条件

HDFS シェル

Azure Data CLI (azdata) の hdfs シェル機能を使用すると、コマンドをシェルで直接発行して、ファイルやディレクトリに対する HDFS アクセス許可を管理できます。 基になるメカニズムでは WebHdfs 呼び出しを使用して、コマンドを発行します

次のコマンドではシェルを開きます。

azdata bdc hdfs shell

hdfs シェルのヘルプにアクセスし、コマンドを発行する方法を理解するには、シェルがアクティブになってから次のコマンドを実行します。

[hdfs] ?

次の例では、ディレクトリの作成、ディレクトリの一覧表示、ディレクトリに対するアクセス許可の変更、および名前付きユーザー bob へのディレクトリ sales の読み取り、書き込み、実行アクセス権の付与方法を示します。

[hdfs] mkdir sales
[hdfs] ls
rwxr-xr-x  hdfs bdcadmins        0 Oct 09 18:02 system/
rwxrwxr-x admin bdcadmins        0 Oct 10 16:47 sales/
--xrwxrwxrwx  hdfs bdcadmins        0 Oct 09 18:03 tmp/
rwxrwxrwx  hdfs bdcadmins        0 Oct 09 17:59 user/

[hdfs] acl modify  '/sales/' 'user:bob:rwx'
acl modify: Change completed.
[hdfs] acl status  '/sales/'
{
  `AclStatus`: {
    `entries`: [
      `user:bob:rwx`,
      `group::r-x`
    ],
    `group`: `bdcadmins`,
    `owner`: `admin`,
    `permission`: `775`,
    `stickyBit`: false
  }
}

Azure Data CLI (azdata) を使用して HDFS にディレクトリを作成する

パス /salesdata というディレクトリを作成します。

azdata bdc hdfs mkdir --path '/sales/data'

ディレクトリまたはファイルの所有者を変更する

HDFS でディレクトリ data の所有ユーザーを変更し、 alice を所有ユーザーに、 salesgroup を所有グループにします。 所有者を変更するには、所有者である必要があります。

azdata bdc hdfs chown --owner alice --group 'salesgroup' --path '/sales/data'

chmod でファイルまたはディレクトリのアクセス許可を変更する

chmod を使用して、ファイルやディレクトリ (所有者、所有グループなど) のアクセス許可を変更します。 詳細については、Linux ファイル システムに対するアクセス許可の変更に関するページを参照してください。 hdfs でのパターンは同じです。 次に例を示します。

azdata bdc hdfs chmod --permission 750 --path /sales/data
azdata bdc hdfs chmod --permission 775 --path /sales/data/file.txt

ディレクトリにスティッキー ビットを設定する

意図しないファイルの削除や再配置を防ぐために、ディレクトリにスティッキー ビットを設定します。 スティッキー ビットでは、ファイルを削除または移動するアクセス許可を、スーパーユーザー、ディレクトリ所有者、またはファイル所有者に制限します。 この設定はファイルには影響しません。 以下の例では、アクセス許可の前に 1 を付けて、ディレクトリ users にスティッキー ビットを設定しています。

azdata bdc hdfs chmod --path /sales/users --permission 1750

ファイルとディレクトリに ACL を設定する

HDFS 内のファイルとディレクトリに ACL を設定するには、Azure Data CLI (azdata) コマンドを使用します。

ディレクトリに ACL を設定し、名前付きユーザー tom に、ディレクトリ data に対する読み取り、書き込み、実行アクセス権を付与します。

Note

set コマンドを使用する場合は、所有ユーザーや所有グループなどの ACL 仕様を含む、完全な ACL 仕様を必ず指定してください。

azdata bdc hdfs acl set --path '/sales' --aclspec  'user::rw-,user:tom:rwx,group::rw-,other::rw-'

ディレクトリの既定の ACL

既定の ACL を使用すると、サブディレクトリで親ディレクトリからアクセス許可を継承できます。 既定の ACL を指定できるのは、ディレクトリのみです。 新しいファイルまたはサブディレクトリが作成されるときに、その親の既定の ACL が自動的に独自のアクセス許可 ACL に継承されます。 この方法では、新しいサブディレクトリが作成されると、既定の ACL が任意の深さのディレクトリ レベルにわたって継承されます。

以下は、azdata を使用して既定の ACL を設定する方法の例です。

azdata bdc hdfs acl set --path '/sale' --aclspec  'user::rw-,user:tom:rwx,group::rw-,other::rw-,default:group::rw-,default:user::rw-,default:other::rw-'