Die Active Directory-Integration in AlloyDB Omni schlägt fehl
Wenn Active Directory nicht funktioniert, gehen Sie so vor, um das Problem zu beheben:
Fügen Sie das Binärprogramm
psqlzu Ihrem PATH hinzu. Wennpsqlnicht in Ihrem Standard-PATH enthalten ist, können Sie den PATH Ihrer Sitzung das Verzeichnis hinzufügen, das die ausführbare Dateipsqlenthält. So können Siepsqldirekt verwenden, ohne den vollständigen Pfad in den nachfolgenden Befehlen angeben zu müssen.export PATH=$PATH:/usr/lib/postgresql/18/bin
Alternativ können Sie
psqlin jedem der folgenden Befehle durch/usr/lib/postgresql/18/bin psqlersetzen.Überprüfen Sie die Keytab-Datei. Prüfen Sie, ob Sie mit dem erhaltenen Keytab eine Verbindung zum Active Directory-Server herstellen können:
kinit -kt PATH_TO_KEYTAB_FILE postgres/DBCLUSTER_HOST@REALM
Host überprüfen
Achten Sie darauf, dass der Host, den Sie beim Generieren der Keytab-Datei verwendet haben, mit dem Host im psql-Befehl übereinstimmt, wie im folgenden Beispiel gezeigt:
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
Achten Sie darauf, dass
DBCLUSTER_HOSTin beiden Befehlen identisch ist.Prüfen Sie die Datei
krb5.conf.Prüfen Sie den Inhalt der Datei
krb5.confauf dem Client. Prüfen Sie, ob der Inhalt der Dateikrb5.conffür Ihre Konfiguration korrekt ist.cat /etc/krb5.conf
Die erwartete Ausgabe sieht so aus:
[libdefaults] default_realm = REALM [realms] REALM = { kdc = KDC_HOST admin_server = ADMIN_SERVER } [domain_realm] HOST_DOMAIN_1 = REALM HOST_DOMAIN_2 = REALMPrüfen Sie die HBA-Einträge und den Status.
Führen Sie die folgenden Befehle aus und senden Sie die Logs an das AlloyDB Omni-Produktteam.
psql -h DBCLUSTER_HOST -U postgres -d postgres
psqlfordert Sie auf, das Passwort des Nutzerspostgreseinzugeben:Password for user postgres:
psqlgibt die folgende Ausgabe zurück:psql (18.1) SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, compression: off, ALPN: none) Type "help" for help.
Führen Sie den folgenden Befehl in der Eingabeaufforderung
psqlaus:postgres=# table pg_hba_file_rules ;
Es wird eine Ausgabe zurückgegeben, die etwa so aussieht:
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 | |
Prüfen Sie die Fehlermeldungen in der Spalte
error. Sie können Ihnen helfen, Konfigurationsprobleme zu erkennen.Geben Sie die Logs auf der Debug-Ebene
krb5aus.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
Beschreibung
Dieser Fehler tritt auf, wenn für einen Systemnutzer, der versucht, eine Verbindung herzustellen, kein PostgreSQL-Nutzer erstellt wurde oder keine Rolle zugeordnet ist.
Empfohlene Korrektur
Erstellen Sie in PostgreSQL eine Rolle mit dem erforderlichen Nutzernamen oder fügen Sie der Datei pg_ident.conf einen Eintrag für diesen Nutzer hinzu.
psql (16.3)
Type "help" for help.
postgres=# CREATE ROLE user2 WITH LOGIN;
CREATE ROLE
Der Serverneustart schlägt mit dem Fehler „could not load /var/lib/postgresql/data/pg_hba.conf“ fehl.
Beschreibung
Der Serverneustart ist fehlgeschlagen, da pg_hba.conf ungültige Einträge enthält.
Empfohlene Korrektur
Prüfen Sie die Datei pg_hba.conf auf ungültige Einträge.
FATAL: LDAP group synchronization failed (FATAL: LDAP-Gruppensynchronisierung fehlgeschlagen)
Beschreibung
Die LDAP-Synchronisierung schlägt fehl, wenn sich der Nutzer anmeldet.
Empfohlene Korrektur
Melden Sie sich als Nutzer
postgresan und führen Sie Folgendes aus:CREATE EXTENSION google_pg_auth;
In der Datei
postgresql.logfinden Sie Informationen dazu, warum die LDAP-Anmeldung fehlgeschlagen ist.cat /obs/diagnostic/postgresql.log | grep google_pg_auth