A integração do Active Directory com o AlloyDB Omni falha
Quando o Active Directory não está a funcionar, siga estes passos para resolver o problema:
Valide o ficheiro keytab. Certifique-se de que consegue estabelecer ligação ao servidor Active Directory através do keytab que obteve:
kinit -kt PATH_TO_KEYTAB_FILE postgres/DBCLUSTER_HOST@REALM
Valide o anfitrião.
Certifique-se de que o anfitrião que usou quando gerou o ficheiro keytab é o mesmo anfitrião no comando psql, conforme mostrado no exemplo seguinte:
KTPass /princ postgres/DBCLUSTER_HOST@REALM /Pass PASSWORD /mapuser postgres /crypto ALL /ptype KRB5_NT_Principal /out OUTPUT_PATH psql -h DBCLUSTER_HOST -d DB_NAME -U USERNAME@REALM
Certifique-se de que
DBCLUSTER_HOST
é o mesmo em ambos os comandos.Valide o ficheiro
krb5.conf
.Valide o conteúdo do ficheiro
krb5.conf
no cliente. Certifique-se de que o conteúdo do ficheirokrb5.conf
está correto para a sua configuração.cat /etc/krb5.conf
Segue-se o resultado esperado:
[libdefaults] default_realm = REALM [realms] REALM = { kdc = KDC_HOST admin_server = ADMIN_SERVER } [domain_realm] HOST_DOMAIN_1 = REALM HOST_DOMAIN_2 = REALM
Valide as entradas e o estado do HBA.
Execute os seguintes comandos e envie os registos à equipa do produto AlloyDB Omni.
psql -h DBCLUSTER_HOST -U postgres -d postgres
O
psql
pede-lhe a palavra-passe do utilizadorpostgres
:Password for user postgres:
O comando
psql
devolve o seguinte resultado:psql (17.5 (Ubuntu 17.5-0ubuntu0.25.04.1), server 16.3) SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, compression: off, ALPN: none) Type "help" for help.
Execute o seguinte comando no comando
psql
:postgres=# table pg_hba_file_rules ;
É devolvido um resultado semelhante ao exemplo seguinte.
rule_number | file_name | line_number | type | database | user_name | address | netmask | auth_method | options | error -------------+--------------------------------------+-------------+---------+----------+--------------------+-----------+-----------------------------------------+-------------+--------------------------+----------------------------------------------------- 1 | /var/lib/postgresql/data/pg_hba.conf | 1 | host | {all} | {alloydbadmin} | 127.0.0.1 | 255.255.255.255 | trust | | | /var/lib/postgresql/data/pg_hba.conf | 2 | hostssl | {all} | {alloydbadmin} | ::1 | ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff | trust | | hostssl record cannot match because SSL is disabled | /var/lib/postgresql/data/pg_hba.conf | 3 | hostssl | {all} | {alloydbpgbouncer} | 0.0.0.0 | 0.0.0.0 | cert | {clientcert=verify-full} | hostssl record cannot match because SSL is disabled | /var/lib/postgresql/data/pg_hba.conf | 4 | hostssl | {all} | {alloydbpgbouncer} | ::1 | ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff | cert | {clientcert=verify-full} | hostssl record cannot match because SSL is disabled | /var/lib/postgresql/data/pg_hba.conf | 5 | hostssl | {all} | {alloydbadmin} | all | | reject | | hostssl record cannot match because SSL is disabled | /var/lib/postgresql/data/pg_hba.conf | 6 | | | | | | | | invalid CIDR mask in address "0.0.0.0/1000" 2 | /var/lib/postgresql/data/pg_hba.conf | 7 | local | {all} | {all} | | | trust | |
Reveja as mensagens de erro na coluna
error
, que podem ajudar a identificar problemas de configuração.Imprima os registos de nível
krb5
de depuração.export KRB5_TRACE=/dev/stderr kinit AD_USER@REALM psql -h DBCLUSTER_HOST -d DB_NAME -U USERNAME@REALM
psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: FATAL: role "user2" does not exist
Descrição
Este erro ocorre quando um utilizador do sistema que está a tentar estabelecer ligação não tem um utilizador do PostgreSQL criado ou não tem uma função mapeada.
Correção recomendada
Crie uma função no PostgreSQL com o nome de utilizador necessário ou adicione uma entrada para este utilizador ao ficheiro pg_ident.conf
.
psql (16.3)
Type "help" for help.
postgres=# CREATE ROLE user2 WITH LOGIN;
CREATE ROLE
O reinício do servidor falha com o erro: "could not load /var/lib/postgresql/data/pg_hba.conf"
Descrição
O reinício do servidor falhou porque o ficheiro pg_hba.conf
contém entradas inválidas.
Correção recomendada
Verifique se existem entradas inválidas no ficheiro pg_hba.conf
.
FATAL: a sincronização de grupos LDAP falhou
Descrição
A sincronização LDAP falha quando o utilizador tenta iniciar sessão.
Correção recomendada
Inicie sessão como utilizador
postgres
e execute o seguinte:CREATE EXTENSION google_pg_auth;
Verifique o ficheiro
postgresql.log
para obter informações sobre o motivo pelo qual o início de sessão LDAP falhou.cat /obs/diagnostic/postgresql.log | grep google_pg_auth