Gerenciar permissões do HDFS para Clusters de Big Data do SQL Server 2019

Aplica-se a:SQL Server 2019 (15.x)

Important

Os Clusters de Big Data do Microsoft SQL Server 2019 foram desativados. O suporte para clusters de Big Data do SQL Server 2019 terminou em 28 de fevereiro de 2025. Para obter mais informações, consulte a postagem no blog de anúncios e as opções de Big Data na plataforma microsoft SQL Server.

O HDFS como um sistema de arquivos é semelhante aos sistemas de arquivos baseados em Linux que usam POSIX para permissões de arquivo. Além do modelo de permissões POSIX tradicional, o HDFS também dá suporte a ACLs (listas de controle de acesso) do POSIX. Para obter mais informações, confira o artigo Apache Hadoop sobre ACLs.

As seções a seguir apresentam exemplos de como usar a CLI de Dados do Azure (azdata) para gerenciar permissões de arquivo e diretório do HDFS.

Prerequisites

HDFS shell

A funcionalidade de shell do hdfs na CLI de Dados do Azure (azdata) permite emitir comandos diretamente em um shell para gerenciar permissões de HDFS em arquivos e diretórios. O mecanismo subjacente usa chamadas WebHdfs para emitir os comandos

O comando a seguir abrirá o shell.

azdata bdc hdfs shell

Para acessar a ajuda para o shell hdfs e entender como emitir comandos, execute o comando a seguir quando o shell estiver ativo.

[hdfs] ?

O exemplo a seguir mostra como criar um diretório, listar diretórios e modificar permissões em um diretório e atribuir a um usuário nomeado bob acesso de leitura, gravação e execução ao diretório 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
  }
}

Criar um diretório no HDFS usando a CLI de Dados do Azure (azdata)

Crie um diretório chamado data no caminho /sales.

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

Alterar o proprietário de um diretório ou arquivo

Altere o usuário proprietário do diretório data no HDFS e torne alice o usuário proprietário e salesgroup , o grupo proprietário. Para alterar o proprietário, você precisa ser um proprietário.

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

Alterar as permissões de um arquivo ou diretório com chmod

Use chmod para alterar permissões em arquivos e diretórios (para proprietário, grupo proprietário e outros). Para obter mais informações, confira como alterar permissões em um sistema de arquivos do Linux. No hdfs, o padrão é o mesmo. For example:

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

Definir bit persistente em diretórios

Definir o recipiente de bit persistente nos diretórios para impedir a exclusão ou a relocação não intencional de arquivos. O bit persistente limita a permissão para excluir ou mover um arquivo para o superusuário, o proprietário do diretório ou o proprietário do arquivo. Esta configuração não afeta o arquivo. O exemplo abaixo define um bit persistente no diretório users prefixando as permissões com um 1.

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

Definir ACLs em arquivos e diretórios

Para definir ACLs em arquivos e diretórios no HDFS, use os comandos da CLI de Dados do Azure (azdata).

Definir ACLs em um diretório e fornecer ao usuário nomeado tom acesso para ler, gravar e executar ao diretório data .

Note

Ao usar o comando set, verifique se você está fornecendo a especificação da ACL completa, incluindo a especificação da ACL para o usuário proprietário, o grupo proprietário e outros.

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

ACL padrão em diretórios

A ACL padrão permite que os subdiretórios herdem as permissões do diretório pai. Somente diretórios podem ter uma ACL padrão. Quando um novo arquivo ou subdiretório é criado, ele herda automaticamente a ACL padrão de seu pai para a própria ACL de acesso. Dessa forma, a ACL padrão será herdada por níveis de diretório arbitrariamente profundo à medida que novos subdiretórios forem criados.

Veja abaixo um exemplo de como definir a ACL padrão 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-'