Partager via


Gérer les autorisations HDFS pour les Clusters Big Data SQL Server 2019

S’applique à : SQL Server 2019 (15.x)

Important

Le module complémentaire Clusters Big Data Microsoft SQL Server 2019 sera mis hors service. La prise en charge de la plateforme Clusters Big Data Microsoft SQL Server 2019 se terminera le 28 février 2025. Tous les utilisateurs existants de SQL Server 2019 avec Software Assurance seront entièrement pris en charge sur la plateforme, et le logiciel continuera à être maintenu par les mises à jour cumulatives SQL Server jusqu’à ce moment-là. Pour plus d’informations, consultez le billet de blog d’annonce et les Options Big Data sur la plateforme Microsoft SQL Server.

HDFS, en tant que système de fichiers, est similaire aux systèmes de fichiers basés sur Linux qui utilisent POSIX pour les autorisations de fichier. En plus du modèle d’autorisations POSIX traditionnel, HDFS prend aussi en charge les listes de contrôle d’accès (ACL) POSIX. Pour plus d’informations, consultez l’article Apache Hadoop sur les listes de contrôle d’accès.

Les sections suivantes fournissent des exemples d’utilisation d’Azure Data CLI (azdata) pour la gestion des autorisations de fichier et de répertoire HDFS.

Prérequis

Interpréteur de commandes HDFS

La fonctionnalité d’interpréteur de commandes hdfs dans Azure Data CLI (azdata) vous permet d’émettre des commandes directement dans un interpréteur de commandes pour gérer les autorisations HDFS sur les fichiers et les répertoires. Le mécanisme sous-jacent utilise les appels WebHdfs pour émettre les commandes.

La commande suivante ouvre l’interpréteur de commandes.

azdata bdc hdfs shell

Pour accéder à l’aide de l’interpréteur de commandes hdfs et comprendre comment émettre des commandes, exécutez la commande suivante une fois que l’interpréteur de commandes est actif.

[hdfs] ?

L’exemple suivant montre comment créer un répertoire, lister les répertoires, modifier les autorisations sur un répertoire et accorder à un utilisateur nommé bob l’accès en lecture, en écriture et en exécution au répertoire 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
  }
}

Créer un répertoire dans HDFS avec Azure Data CLI (azdata)

Créez un répertoire appelé data dans /sales.

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

Changer le propriétaire d’un répertoire ou d’un fichier

Changez l’utilisateur propriétaire du répertoire data dans HDFS et définissez alice comme utilisateur propriétaire et salesgroup comme groupe d’appartenance. Pour pouvoir changer le propriétaire, vous devez être propriétaire vous-même.

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

Modifier les autorisations d’un fichier ou d’un répertoire avec chmod

Utilisez chmod pour modifier les autorisations sur les fichiers et les répertoires (pour un propriétaire, un groupe d’appartenance ou autres). Pour plus d’informations, reportez-vous à la modification des autorisations sur un système de fichiers Linux. Dans HDFS, le modèle est le même. Par exemple :

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

Définir un sticky bit sur des répertoires

Définissez le sticky bit sur des répertoires pour empêcher la suppression ou le déplacement non intentionnels des fichiers. Le sticky bit limite l’autorisation de suppression ou de déplacement d’un fichier au superutilisateur, au propriétaire du répertoire ou au propriétaire du fichier. Ce paramètre n’affecte pas le fichier. L’exemple ci-dessous définit un sticky bit sur le répertoire users en préfixant les autorisations avec un 1.

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

Définir les listes ACL des fichiers et répertoires

Pour définir des listes ACL sur des fichiers et des répertoires dans HDFS, utilisez les commandes Azure Data CLI (azdata).

Définition de listes de contrôle d’accès sur un répertoire et attribution à un utilisateur nommé tom un accès en lecture, en écriture et en exécution au répertoire data .

Notes

Quand vous utilisez la commande set, assurez-vous de fournir la spécification de liste ACL complète, y compris la spécification de liste ACL pour l’utilisateur propriétaire, le groupe d’appartenance et les autres.

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

Liste de contrôle d’accès par défaut sur des répertoires

La liste de contrôle d’accès par défaut permet à des sous-répertoires d’hériter des autorisations du répertoire parent. Seuls des répertoires peuvent avoir une liste de contrôle d’accès par défaut. Lorsqu’un nouveau fichier ou sous-répertoire est créé, il hérite automatiquement de la liste de contrôle d’accès par défaut de son parent dans sa propre liste de contrôle d’accès. De cette façon, la liste de contrôle d’accès par défaut est héritée via des niveaux de répertoire d’une profondeur arbitraire au fur et à mesure que de nouveaux sous-répertoires sont créés.

Voici un exemple illustrant comment définir la liste de contrôle d’accès par défaut en utilisant azdata.

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