Verwalten von HDFS-Berechtigungen für Big Data-Cluster für SQL Server 2019

Gilt für: SQL Server 2019 (15.x)

Wichtig

Das Microsoft SQL Server 2019-Big Data-Cluster-Add-On wird eingestellt. Der Support für SQL Server 2019-Big Data-Clusters endet am 28. Februar 2025. Alle vorhandenen Benutzer*innen von SQL Server 2019 mit Software Assurance werden auf der Plattform vollständig unterstützt, und die Software wird bis zu diesem Zeitpunkt weiterhin über kumulative SQL Server-Updates verwaltet. Weitere Informationen finden Sie im Ankündigungsblogbeitrag und unter Big Data-Optionen auf der Microsoft SQL Server-Plattform.

Das Dateisystem HDFS ähnelt den Linux-basierten Dateisystemen, die POSIX für Dateiberechtigungen verwenden. Neben dem traditionellen POSIX-Berechtigungsmodell unterstützt HDFS auch POSIX-Zugriffssteuerungslisten (Access Control Lists, ACL). Weitere Informationen finden Sie im Artikel von Apache Hadoop über ACLs.

Die folgenden Abschnitte enthalten Beispiele für die Verwendung der Azure Data CLI (azdata) zum Verwalten von HDFS-Berechtigungen für Dateien und Verzeichnisse.

Voraussetzungen

HDFS-Shell

Mit der Shellfunktion hdfs in Azure Data CLI (azdata) können Sie Befehle direkt in einer Shell ausgeben, um HDFS-Berechtigungen für Dateien und Verzeichnisse zu verwalten. Der zugrunde liegende Mechanismus verwendet WebHDFS-Aufrufe, um die Befehle auszugeben.

Mit dem folgenden Befehl wird die Shell geöffnet:

azdata bdc hdfs shell

Führen Sie den folgenden Befehl aus, sobald die Shell aktiv ist, um die Hilfe für die hdfs-Shell zu öffnen und Informationen zur Ausgabe von Befehlen zu erhalten:

[hdfs] ?

Das folgende Beispiel zeigt, wie Sie ein Verzeichnis erstellen, Verzeichnisse auflisten, Berechtigungen für ein Verzeichnis ändern und einem Benutzer namens bob Lese-, Schreib- und Ausführungszugriff auf das Verzeichnis sales erteilen.

[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
  }
}

Erstellen eines Verzeichnisses in HDFS mithilfe der Azure Data CLI (azdata)

Erstellen Sie im Pfad /sales ein Verzeichnis mit dem Namen data.

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

Ändern des Besitzers eines Verzeichnisses oder einer Datei

Ändern Sie den besitzenden Benutzer des Verzeichnisses data in HDFS, und legen Sie alice als besitzenden Benutzer und salesgroup als besitzende Gruppe fest. Um den Besitzer ändern zu können, müssen Sie selbst Besitzer sein.

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

Ändern von Berechtigungen für eine Datei oder ein Verzeichnis mit chmod

Mit chmod können Sie Berechtigungen für Dateien und Verzeichnisse (wie den Besitzer, die besitzende Gruppe usw.) ändern. Weitere Informationen finden Sie unter Ändern von Berechtigungen für ein Linux-Dateisystem. In HDFS ist das Muster identisch. Beispiel:

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

Festlegen der Sticky Bit-Berechtigung für Verzeichnisse

Legen Sie die Sticky Bit-Berechtigung für Verzeichnisse fest, um ein versehentliches Löschen oder Verschieben von Dateien zu verhindern. Durch diese Berechtigung kann nur der Superuser, der Besitzer des Verzeichnisses oder der Besitzer der Datei eine Datei löschen oder verschieben. Diese Einstellung hat keine Auswirkungen auf die Datei. Im folgenden Beispiel wird für das Verzeichnis users eine Sticky Bit-Berechtigung festgelegt, indem den Berechtigungen eine 1 vorangestellt wird.

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

Festlegen der Zugriffssteuerungslisten von Dateien und Verzeichnissen

Verwenden Sie zum Festlegen von ACLs für Dateien und Verzeichnisse in HDFS die Befehle der Azure Data CLI (azdata).

Im folgenden Beispiel werden ACLs für ein Verzeichnis festgelegt und einem Benutzer namens tom Lese-, Schreib- und Ausführungszugriff auf das Verzeichnis data erteilt.

Hinweis

Stellen Sie bei Verwendung des set-Befehls sicher, dass Sie die vollständige ACL-Spezifikation einschließlich der ACL-Spezifikation für den besitzenden Benutzer, die besitzende Gruppe usw. bereitstellen.

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

Standard-ACL für Verzeichnisse

Durch die Standard-ACL erben Unterverzeichnisse Berechtigungen vom übergeordneten Verzeichnis. Nur Verzeichnisse können eine Standard-ACL besitzen. Wird eine neue Datei oder ein Unterverzeichnis erstellt, wird die Standard-ACL des übergeordneten Elements automatisch in die jeweilige Zugriffs-ACL übernommen. Auf diese Weise wird die Standard-ACL beim Erstellen von neuen Unterverzeichnissen beliebig weit in der Verzeichnisstruktur nach unten vererbt.

Das folgende Beispiel zeigt, wie Sie die Standard-ACL mit „azdata“ festlegen:

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-'