Probleme mit der Active Directory-Integration in AlloyDB Omni beheben

Wählen Sie eine Dokumentenversion aus:

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

Einbindung von Active Directory 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 zu Ihrem PATH hinzu. Wenn psql nicht in Ihrem Standard-PATH enthalten ist, können Sie den Ordner mit der ausführbaren Datei psql zum PATH Ihrer Sitzung hinzufügen. So können Sie psql direkt verwenden, ohne den vollständigen Pfad in den nachfolgenden Befehlen anzugeben.

    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 Keytab-Datei, die Sie erhalten haben, eine Verbindung zum Active Directory-Server 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. Überprüfen Sie die Datei krb5.conf.

    Überprü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. Überprü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 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.
      
    2. Führen Sie bei der Eingabeaufforderung psql den folgenden Befehl 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. Sie können Ihnen helfen, Konfigurationsprobleme zu identifizieren.

  7. Geben Sie die krb5-Logs auf Debug-Ebene 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 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

Serverneustart schlägt mit dem Fehler „could not load /var/lib/postgresql/data/pg_hba.conf“ fehl

Beschreibung

Der Serverneustart ist fehlgeschlagen, weil die Datei 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

Beschreibung

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

Empfohlene Korrektur

  1. Melden Sie sich als Nutzer postgres 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