Probleme mit der Active Directory-Integration in AlloyDB Omni beheben

Wählen Sie eine Dokumentationsversion aus:

In diesem Dokument werden Fehler beschrieben, die bei der Einbindung von Active Directory in AlloyDB Omni auftreten können. Außerdem finden Sie hier Beispiele für Fehler und empfohlene Korrekturen.

Active Directory-Integration in AlloyDB Omni schlägt fehl

Wenn Active Directory nicht funktioniert, gehen Sie so vor, um das Problem zu beheben:

  1. Fügen Sie die Binärdatei psql Ihrem PATH hinzu. Wenn sich psql nicht in Ihrem Standard-PATH befindet, können Sie das Verzeichnis mit der ausführbaren psql-Datei dem PATH Ihrer Sitzung hinzufügen. So können Sie psql direkt 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 psql in jedem der folgenden Befehle durch /usr/lib/postgresql/18/bin psql ersetzen.

  2. Überprüfen Sie die Keytab-Datei. Prüfen Sie, ob Sie mit der erhaltenen Keytab eine Verbindung zum Active Directory-Verzeichnisserver herstellen können:

    kinit -kt PATH_TO_KEYTAB_FILE postgres/DBCLUSTER_HOST@REALM
    
  3. Überprüfen Sie den Host.

    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_HOST in beiden Befehlen identisch ist.

  4. Prüfen Sie die Datei krb5.conf.

    Prüfen Sie den Inhalt der Datei krb5.conf auf dem Client. Achten Sie darauf, dass der Inhalt der Datei krb5.conf fü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 = REALM
    
  5. Prüfen Sie die HBA-Einträge und den Status.

    1. 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
      

      psql fordert Sie auf, das Passwort des Nutzers postgres einzugeben:

      Password for user postgres:
      

      psql gibt Folgendes zurück:

      psql (18.1)
      SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, compression: off, ALPN: none)
      Type "help" for help.
      
    2. Führen Sie den folgenden Befehl in der Eingabeaufforderung psql aus:

      postgres=# table pg_hba_file_rules ;
      

      Es wird eine Ausgabe ähnlich dem folgenden Beispiel zurückgegeben.

      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       |                          |
      
  6. Prüfen Sie die Fehlermeldungen in der Spalte error, um Konfigurationsprobleme zu identifizieren.

  7. Geben Sie die Logs der Fehlerbehebungsebene krb5 aus.

    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 ein Systemnutzer, der versucht, eine Verbindung herzustellen, keinen PostgreSQL-Nutzer erstellt oder keine Rolle zugewiesen hat.

Empfohlene Fehlerbehebung

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 Server konnte nicht neu gestartet werden, da die pg_hba.conf ungültige Einträge enthält.

Empfohlene Fehlerbehebung

Prüfen Sie die Datei pg_hba.conf auf ungültige Einträge.

FATAL: LDAP group synchronization failed

Beschreibung

Die LDAP-Synchronisierung schlägt fehl, wenn der Nutzer versucht, sich anzumelden.

Empfohlene Fehlerbehebung

  1. Melden Sie sich als postgres-Nutzer an und führen Sie Folgendes aus:

    CREATE EXTENSION google_pg_auth;
    
  2. In der Datei postgresql.log finden Sie Informationen dazu, warum die LDAP-Anmeldung fehlgeschlagen ist.

    cat /obs/diagnostic/postgresql.log | grep google_pg_auth
    

Nächste Schritte

- Active Directory in AlloyDB Omni einbinden