- Fluxo de trabalho baseado em SQL. É preciso habilitar essa funcionalidade.
-
Arquivos de configuração do servidor arquivos de configuração
users.xmleconfig.xml.
Você não pode gerenciar a mesma entidade de acesso pelos dois métodos de configuração ao mesmo tempo.
Se você quiser gerenciar usuários do console do ClickHouse Cloud, consulte esta página
SHOW ACCESS.
Visão geral
default, que não pode usar o controle de acesso e gerenciamento de contas via SQL, mas tem todos os direitos e permissões. A conta de usuário default é usada sempre que o nome de usuário não é definido, por exemplo, ao fazer login pelo cliente ou em consultas distribuídas. No processamento de consultas distribuídas, a conta de usuário padrão é usada se a configuração do servidor ou do cluster não especificar as propriedades de usuário e senha.
Se você começou a usar o ClickHouse agora, considere o seguinte cenário:
- Ative o controle de acesso e gerenciamento de contas via SQL para o usuário
default. - Faça login na conta de usuário
defaulte crie todos os usuários necessários. Não se esqueça de criar uma conta de administrador (GRANT ALL ON *.* TO admin_user_account WITH GRANT OPTION). - Restrinja as permissões do usuário
defaulte desative para ele o controle de acesso e gerenciamento de contas via SQL.
Propriedades da solução atual
- Você pode conceder permissões para bancos de dados e tabelas mesmo que eles não existam.
- Se uma tabela for excluída, os privilégios correspondentes a ela não são revogados. Isso significa que, mesmo que você crie uma nova tabela com o mesmo nome mais tarde, todos os privilégios continuarão válidos. Para revogar os privilégios correspondentes à tabela excluída, você precisa executar, por exemplo, a consulta
REVOKE ALL PRIVILEGES ON db.table FROM ALL. - Não há configurações de validade para privilégios.
Conta de usuário
- Informações de identificação.
- Privilégios que definem o escopo das consultas que o usuário pode executar.
- Hosts autorizados a se conectar ao servidor ClickHouse.
- Funções atribuídas e funções padrão.
- Configurações com suas restrições aplicadas por padrão no login do usuário.
- Perfis de configurações atribuídos.
Configurações aplicáveis
- Configurações da conta de usuário.
- As configurações das funções padrão da conta de usuário. Se uma configuração estiver definida em algumas funções, a ordem de aplicação dessa configuração será indefinida.
- As configurações de perfis de configurações atribuídos a um usuário ou às funções padrão dele. Se uma configuração estiver definida em alguns perfis, a ordem de aplicação dessa configuração será indefinida.
- Configurações aplicadas a todo o servidor por padrão ou a partir do perfil padrão.
Função
- Privilégios
- Configurações e restrições
- Lista de funções atribuídas
Política de linha
As políticas de linha só fazem sentido se você tiver acesso somente leitura. Se você puder modificar a tabela ou copiar partições entre tabelas, isso invalida as restrições das políticas de linha.
Perfil de configurações
- CREATE SETTINGS PROFILE
- ALTER SETTINGS PROFILE
- DROP SETTINGS PROFILE
- SHOW CREATE SETTINGS PROFILE
- SHOW PROFILES
Cota
Habilitando o controle de acesso e o gerenciamento de contas via SQL
- Configure um diretório para armazenar as configurações. O ClickHouse armazena as configurações das entidades de acesso na pasta definida no parâmetro de configuração do servidor access_control_path.
-
Habilite o controle de acesso e o gerenciamento de contas via SQL para pelo menos uma conta de usuário.
Por padrão, o controle de acesso e o gerenciamento de contas via SQL estão desabilitados para todos os usuários. É necessário configurar pelo menos um usuário no arquivo de configuração
users.xmle definir como 1 os valores das configuraçõesaccess_management,named_collection_control,show_named_collectionseshow_named_collections_secrets.
Definindo usuários e funções SQL
Habilitando o modo de usuário SQL
- Habilite o modo de usuário SQL no arquivo
users.xml, na seção do usuário<default>:
O usuário
default é o único usuário criado em uma instalação limpa e, por padrão, também é a conta usada para a comunicação entre nós.Em produção, recomenda-se desabilitar esse usuário depois que a comunicação entre nós tiver sido configurada com um usuário administrador SQL e as comunicações entre nós tiverem sido definidas com <secret>, credenciais do cluster e/ou credenciais HTTP e do protocolo de transporte entre nós, já que a conta default é usada para a comunicação entre nós.- Reinicie os nós para aplicar as alterações.
-
Inicie o cliente do ClickHouse:
Definindo usuários
- Crie uma conta de administrador SQL:
- Conceda ao novo usuário permissões administrativas completas
Alterar permissões
ALTER para usuários privilegiados.
As instruções ALTER são divididas em várias categorias, algumas das quais são hierárquicas, enquanto outras não são e devem ser definidas explicitamente.
Exemplo de configuração de DB, tabela e usuário
- Com um usuário administrador, crie um usuário de exemplo
- Criar um banco de dados de exemplo
- Crie uma tabela de amostragem
- Crie um usuário administrador de exemplo para conceder/revogar privilégios
Para conceder ou revogar permissões, o usuário admin deve ter o privilégio Para usar
WITH GRANT OPTION.
Por exemplo:GRANT ou REVOKE para conceder ou revogar privilégios, o usuário primeiro precisa ter esses privilégios.ALTER:
- Concedendo privilégios
ALTERa um usuário ou função
GRANT ALTER on *.* TO my_user afetará apenas ALTER TABLE e ALTER VIEW no nível superior; outras instruções ALTER devem ser concedidas ou revogadas individualmente.
por exemplo, concedendo o privilégio básico ALTER:
ALTER TABLE e ALTER VIEW do exemplo acima; no entanto, não concede algumas outras permissões de ALTER, como ALTER ROW POLICY (volte à hierarquia e você verá que ALTER ROW POLICY não é subordinado a ALTER TABLE nem a ALTER VIEW). Essas permissões devem ser explicitamente concedidas ou revogadas.
Se apenas um subconjunto das permissões de ALTER for necessário, cada uma poderá ser concedida separadamente; se essa permissão tiver subprivilégios, eles também serão concedidos automaticamente.
Por exemplo:
- Revogar privilégios
ALTERde Usuários e funções
REVOKE funciona de maneira semelhante ao comando GRANT.
Se um usuário/role recebeu um subprivilégio, você pode revogar esse subprivilégio diretamente ou revogar o privilégio de nível superior do qual ele é herdado.
Por exemplo, se o usuário recebeu a permissão ALTER ADD COLUMN
WITH GRANT OPTION, mas que também possua os próprios privilégios.
- Para conceder a um usuário Admin um privilégio e também permitir que ele administre um conjunto de privilégios Abaixo está um exemplo:
ALTER COLUMN e todos os subprivilégios.
Testes
- Conceda o privilégio
SELECT
- Adicione ao usuário o privilégio de adicionar colunas
- Faça login com o usuário restrito
- Teste adicionar uma coluna
- Teste a remoção de uma coluna
- Testando a permissão ALTER ADMIN ao concedê-la
- Faça login com o usuário administrador alter
- Conceda um subprivilégio
- Teste conceder um privilégio que o usuário admin alter não possui e que não seja um subprivilégio das grants do usuário admin.
ALTER em tabelas e views, mas não para outras instruções ALTER. As permissões podem ser definidas em nível granular ou por agrupamento de permissões e também podem ser revogadas da mesma forma. O usuário que concede ou revoga deve ter WITH GRANT OPTION para definir privilégios para usuários, incluindo para si mesmo como usuário executor, e já deve possuir o privilégio. O usuário executor não pode revogar os próprios privilégios se não tiver o privilégio GRANT OPTION.