Pular para o conteúdo principal
Esta página não se aplica ao ClickHouse Cloud. O recurso documentado aqui não está disponível nos serviços do ClickHouse Cloud. Consulte o guia Compatibilidade com Cloud do ClickHouse para mais informações.
O servidor LDAP pode ser usado para autenticar usuários do ClickHouse. Há duas abordagens diferentes para isso:
  • Usar o LDAP como autenticador externo para usuários existentes, definidos em users.xml ou nos caminhos locais de controle de acesso.
  • Usar o LDAP como diretório externo de usuários e permitir a autenticação de usuários não definidos localmente, caso eles existam no servidor LDAP.
Em ambas as abordagens, um servidor LDAP nomeado internamente deve ser definido na configuração do ClickHouse para que outras partes da configuração possam fazer referência a ele.

Definição do servidor LDAP

Para definir o servidor LDAP, adicione a seção ldap_servers ao config.xml. Exemplo
Observe que é possível definir vários servidores LDAP na seção ldap_servers usando nomes distintos. Parâmetros Subparâmetros de user_dn_detection Seção com parâmetros de pesquisa LDAP para detectar o DN real do usuário autenticado via bind. Isso é usado principalmente em filtros de pesquisa para mapeamento adicional de função quando o servidor é Active Directory. O DN de usuário resultante será usado ao substituir substrings {user_dn} onde elas forem permitidas. Por padrão, o DN de usuário é definido como igual ao bind DN, mas, assim que a pesquisa for executada, ele será atualizado com o valor real do DN de usuário detectado.

Autenticador LDAP externo

Um servidor LDAP remoto pode ser usado como método para verificar senhas de usuários definidos localmente (usuários definidos em users.xml ou em caminhos locais de controle de acesso). Para isso, especifique o nome de um servidor LDAP previamente definido em vez de password ou seções semelhantes na definição do usuário. A cada tentativa de login, o ClickHouse tenta fazer “bind” no DN especificado pelo parâmetro bind_dn na definição do servidor LDAP usando as credenciais fornecidas e, se a operação for bem-sucedida, o usuário será considerado autenticado. Isso costuma ser chamado de método de “simple bind”. Exemplo
Observe que o usuário my_user está associado a my_ldap_server. Esse servidor LDAP deve ser configurado no arquivo principal config.xml, conforme descrito anteriormente. Quando o Controle de acesso e gerenciamento de contas baseado em SQL está habilitado, usuários autenticados por servidores LDAP também podem ser criados usando a instrução CREATE USER.
Query

Diretório externo de usuários LDAP

Além dos usuários definidos localmente, um servidor LDAP remoto pode ser usado como fonte de definições de usuários. Para isso, especifique o nome de um servidor LDAP previamente definido (consulte Definição do servidor LDAP) na seção ldap, dentro da seção users_directories do arquivo config.xml. A cada tentativa de login, o ClickHouse tenta localizar a definição do usuário localmente e autenticá-lo como de costume. Se o usuário não estiver definido, o ClickHouse assumirá que a definição existe no diretório LDAP externo e tentará fazer “bind” no DN especificado no servidor LDAP usando as credenciais fornecidas. Se isso for bem-sucedido, o usuário será considerado existente e autenticado. O usuário receberá as funções da lista especificada na seção roles. Além disso, uma operação LDAP de “search” pode ser executada, e os resultados podem ser transformados e tratados como nomes de funções, sendo então atribuídos ao usuário se a seção role_mapping também estiver configurada. Tudo isso implica que o Controle de acesso e gerenciamento de contas baseado em SQL esteja habilitado e que as funções sejam criadas usando a instrução CREATE ROLE. Exemplo Adicionar ao config.xml.
Observe que my_ldap_server, referenciado na seção ldap dentro da seção user_directories, deve ser um servidor LDAP previamente definido e configurado no config.xml (consulte Definição do servidor LDAP). Parâmetros Subparâmetros de role_mapping Seção com parâmetros de busca LDAP e regras de mapeamento. Quando um usuário se autentica, com a vinculação ao LDAP ainda ativa, é executada uma busca LDAP usando search_filter e o nome do usuário autenticado. Para cada entrada encontrada durante essa busca, o valor do atributo especificado é extraído. Para cada valor de atributo que tenha o prefixo especificado, o prefixo é removido, e o restante do valor passa a ser o nome de uma função local definida no ClickHouse, que deve ter sido criado previamente pela instrução CREATE ROLE. Pode haver várias seções role_mapping definidas dentro da mesma seção ldap. Todas elas serão aplicadas.
Última modificação em 12 de junho de 2026