Estou trabalhando na configuração da autenticação LDAP para um banco de dados PostgreSQL e adicionei o seguinte no meu pg_hba.conf
arquivo:
# TYPE DATABASE USER ADDRESS METHOD
host all all all ldap ldapurl="ldap://example.local/dc=example,dc=local?sAMAccountName" ldapbinddn="username" ldapbindpasswd="password"
Funciona! Mas agora eu gostaria de armazenar o nome de usuário e a senha como variáveis de ambiente, como faço para a maioria das minhas configurações. Tentei adicionar o nome de usuário e a senha como $LDAPUSERNAME ou "$LDAPUSERNAME", mas eles não estão inserindo nenhum valor. Isso é possível?
Observação: o banco de dados será executado em um contêiner docker. Se eu tiver que executar algum script para processar o pg_hba.conf
arquivo antes de iniciar o banco de dados, eu posso.
Você não pode especificar essas configurações por meio de variáveis de ambiente no PostgreSQL. Lembre-se que
ldapbindpasswd
é específico para uma determinadapg_hba.conf
linha, e linhas diferentes podem ter configurações diferentes.Como meu objetivo final é manter as senhas fora do controle de versão e o banco de dados está sendo executado em um contêiner docker, fiz a imagem processar o
pg_hba.conf
arquivo na inicialização..env
arquivo para o serviço com o conteúdo:Adicione este arquivo ao seu
.gitignore
para que não seja confirmado.pg_hba.conf
arquivo com a variável de ambiente:scripts/ldap.sh
) e atualize o dockerfile para copiar o script no diretório de inicialização:Agora basta iniciar seu banco de dados e observar quaisquer erros no log!