השילוב של Active Directory עם AlloyDB Omni נכשל
אם Active Directory לא פועל, אפשר לנסות את הפעולות הבאות כדי לפתור את הבעיה:
מאמתים את קובץ ה-keytab. מוודאים שאפשר להתחבר לשרת Active Directory באמצעות קובץ ה-keytab שהשגתם:
kinit -kt PATH_TO_KEYTAB_FILE postgres/DBCLUSTER_HOST@REALM
מאמתים את המארח.
מוודאים שהמארח שבו השתמשתם כשייצרתם את קובץ ה-keytab הוא אותו מארח בפקודת psql, כמו בדוגמה הבאה:
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
מוודאים ש-
DBCLUSTER_HOSTזהה בשתי הפקודות.מאמתים את קובץ ה-
krb5.conf.בודקים את התוכן של הקובץ
krb5.confבלקוח. מוודאים שהתוכן בקובץkrb5.confנכון להגדרה שלכם.cat /etc/krb5.conf
זה הפלט הצפוי:
[libdefaults] default_realm = REALM [realms] REALM = { kdc = KDC_HOST admin_server = ADMIN_SERVER } [domain_realm] HOST_DOMAIN_1 = REALM HOST_DOMAIN_2 = REALMבודקים את הרשומות והסטטוס של ה-HBA.
מריצים את הפקודות הבאות ושולחים את היומנים לצוות המוצר של AlloyDB Omni.
psql -h DBCLUSTER_HOST -U postgres -d postgres
psqlתתבקשו להזין את הסיסמה של המשתמשpostgres:Password for user postgres:
הפלט הבא מוחזר על ידי
psql: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.
מריצים את הפקודה הבאה בהנחיה
psql:postgres=# table pg_hba_file_rules ;
מוחזר פלט שדומה לדוגמה הבאה:
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 | |
בודקים את הודעות השגיאה בעמודה
error, שיכולות לעזור לכם לזהות בעיות בהגדרות.הדפסת יומני
krb5ברמת ניפוי הבאגים.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
תיאור
השגיאה הזו מתרחשת כשמשתמש מערכת שמנסה להתחבר לא יצר משתמש PostgreSQL או שלא מוגדר לו מיפוי תפקידים.
תיקון מומלץ
יוצרים תפקיד ב-PostgreSQL עם שם המשתמש הנדרש, או מוסיפים רשומה למשתמש הזה לקובץ pg_ident.conf.
psql (16.3)
Type "help" for help.
postgres=# CREATE ROLE user2 WITH LOGIN;
CREATE ROLE
ההפעלה מחדש של השרת נכשלת עם השגיאה: "לא ניתן לטעון את /var/lib/postgresql/data/pg_hba.conf"
תיאור
ההפעלה מחדש של השרת נכשלה כי הקובץ pg_hba.conf מכיל רשומות לא תקינות.
תיקון מומלץ
בודקים אם יש ערכים לא תקינים בקובץ pg_hba.conf.
FATAL: LDAP group synchronization failed
תיאור
הסנכרון של LDAP נכשל כשמשתמש מנסה להיכנס.
תיקון מומלץ
נכנסים לחשבון בתור המשתמש
postgresומריצים את הפקודה הבאה:CREATE EXTENSION google_pg_auth;
בודקים את הקובץ
postgresql.logכדי לראות למה הכניסה באמצעות LDAP נכשלה.cat /obs/diagnostic/postgresql.log | grep google_pg_auth