Gerenciar permissões do HDFS para Clusters de Big Data do SQL Server 2019
Aplica-se a: SQL Server 2019 (15.x)
Importante
O complemento Clusters de Big Data do Microsoft SQL Server 2019 será desativado. O suporte para Clusters de Big Data do SQL Server 2019 será encerrado em 28 de fevereiro de 2025. Todos os usuários existentes do SQL Server 2019 com Software Assurance terão suporte total na plataforma e o software continuará a ser mantido por meio de atualizações cumulativas do SQL Server até esse momento. Para obter mais informações, confira a postagem no blog de anúncio e as opções de Big Data na plataforma do 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.
Pré-requisitos
Shell do HDFS
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. Por exemplo:
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
.
Observação
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-'