Gestire le autorizzazioni HDFS per i cluster Big Data di SQL Server 2019

Si applica a: SQL Server 2019 (15.x)

Importante

Il componente aggiuntivo per i cluster Big Data di Microsoft SQL Server 2019 verrà ritirato. Il supporto per i cluster Big Data di SQL Server 2019 terminerà il 28 febbraio 2025. Tutti gli utenti esistenti di SQL Server 2019 con Software Assurance saranno completamente supportati nella piattaforma e fino a quel momento il software continuerà a ricevere aggiornamenti cumulativi di SQL Server. Per altre informazioni, vedere il post di blog relativo all'annuncio e Opzioni per i Big Data nella piattaforma Microsoft SQL Server.

HDFS (Hadoop Distributed File System) è un file system simile ai file system basati su Linux che usano POSIX per le autorizzazioni per i file. Oltre al modello di autorizzazioni POSIX tradizionale, HDFS supporta anche gli elenchi di controllo di accesso POSIX. Per altre informazioni, vedere l'articolo di Apache Hadoop sugli elenchi di controllo di accesso.

Nelle sezioni seguenti vengono forniti esempi di come usare l'interfaccia della riga di comando di Azure Data (azdata) per gestire le autorizzazioni di file e directory HDFS.

Prerequisiti

Shell HDFS

La funzionalità di shell hdfs nell'interfaccia della riga di comando di Azure Data (azdata) consente di eseguire i comandi direttamente in una shell per gestire le autorizzazioni HDFS per file e directory. Il meccanismo sottostante usa chiamate WebHdfs per eseguire i comandi

Il comando seguente apre la shell.

azdata bdc hdfs shell

Per accedere alla guida per la shell hdfs e comprendere come eseguire i comandi, eseguire il comando seguente quando la shell è attiva.

[hdfs] ?

L'esempio seguente mostra come creare una directory, elencare le directory e modificare le autorizzazioni per una directory, nonché assegnare a un utente di nome bob l'accesso in lettura, scrittura ed esecuzione alla directory 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
  }
}

Creare una directory in HDFS usando l'interfaccia della riga di comando di Azure Data (azdata)

Creare una directory denominata data nel percorso /sales.

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

Modificare il proprietario di una directory o di un file

Modificare l'utente proprietario della directory data in HDFS e impostare alice come utente proprietario e salesgroup come gruppo proprietario. Per modificare il proprietario, è necessario essere un proprietario.

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

Modificare le autorizzazioni di un file o di una directory con chmod

Usare chmod per modificare le autorizzazioni per file e directory (per proprietario, gruppo proprietario e altro). Per altre informazioni, vedere Modifica delle autorizzazioni in un file system Linux. In HDFS il modello è lo stesso. Ad esempio:

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

Impostare uno sticky bit sulle directory

L'impostazione di uno sticky bit sulle directory consente di evitare l'eliminazione o la rilocazione non intenzionale di file. Lo sticky bit limita l'autorizzazione per l'eliminazione o lo spostamento di un file a un utente con privilegi avanzati, un proprietario della directory o un proprietario del file. Questa impostazione non ha alcun effetto sul file. Nell'esempio seguente viene impostato uno sticky bit sulla directory users aggiungendo alle autorizzazioni il prefisso 1.

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

Impostare gli ACL su file e directory

Per impostare elenchi di controllo di accesso per file e directory in HDFS, usare i comandi dell'interfaccia della riga di comando di Azure Data (azdata).

Di seguito vengono impostati elenchi di controllo di accesso su una directory e viene assegnato all'utente di nome tom l'accesso in lettura, scrittura ed esecuzione alla directory data.

Nota

Quando si usa il comando set, assicurarsi di fornire la specifica completa dell'elenco di controllo di accesso, incluse le informazioni su utente proprietario, gruppo proprietario e altro.

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

Elenco di controllo di accesso predefinito sulle directory

L'elenco di controllo di accesso predefinito consente alle sottodirectory di ereditare le autorizzazioni dalla directory padre. Solo le directory possono avere un elenco di controllo di accesso predefinito. Quando viene creato un nuovo file o una sottodirectory, questo eredita automaticamente l'elenco di controllo di accesso predefinito dell'elemento padre. In questo modo, l'elenco di controllo di accesso predefinito verrà ereditato verso il basso in livelli di directory con una profondità arbitraria man mano che vengono create nuove sottodirectory.

Di seguito è riportato un esempio di come impostare l'elenco di controllo di accesso predefinito usando 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-'