Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Lösningar för vanliga Problem med PostgreSQL-anslutning, schema och SSL i Data API Builder.
Vanliga frågor
Vad är PostgreSQL-stöd i DAB?
Data API Builder stöder PostgreSQL som en relationsdatabas-backend. DAB ansluter med npgsql-drivrutinen och översätter REST- och GraphQL-begäranden till SQL-frågor. Både postgreSQL-instanser med egen värd och hanterade tjänster som Azure Database for PostgreSQL stöds.
Vilket format för anslutningssträngar använder PostgreSQL?
DAB använder en ADO.NET-anslutningssträng för PostgreSQL. En typisk sträng ser ut som Host=localhost;Port=5432;Database=mydb;Username=myuser;Password=mypassword;. Ange anslutningssträngen i fältet data-source.connection-stringdab-config.json eller skicka den via --connection-string i dab init.
Stödjer DAB PostgreSQL-scheman?
Ja. DAB stöder icke-offentliga scheman. Referera till schemat explicit i entitetens source fält med formatet schemaname.tablename (till exempel sales.orders). Databasanvändaren som konfigurerats i anslutningssträngen måste ha USAGE behörighet för schemat och SELECT, INSERT, UPDATEeller DELETE behörigheter för måltabellerna.
Vanliga problem
Det går inte att ansluta till PostgreSQL-containern
Symptom: DAB kan inte börja med Failed to connect to localhost:5432 eller ett liknande nätverksfel.
Orsaka: PostgreSQL-containerporten är inte mappad eller så är containern inte redo att acceptera anslutningar.
Upplösning: Bekräfta att containern körs med docker ps och att porten 5432 har mappats till värden. Använd Host=localhost;Port=5432 i anslutningssträngen. Om containern precis har startat kan du vänta några sekunder innan PostgreSQL initieras innan DAB startas.
Lösenordsautentiseringen misslyckades
Symptom: DAB-loggar visar 28P01: password authentication failed for user.
Orsaka: Användarnamnet eller lösenordet i anslutningssträngen är felaktigt, eller så har PostgreSQL-användaren konfigurerats för en annan autentiseringsmetod som peer eller ident.
Upplösning: Kontrollera att autentiseringsuppgifterna matchar de som angavs när PostgreSQL-instansen eller containern skapades. För containrar, kontrollera miljövariablerna POSTGRES_PASSWORD och POSTGRES_USER. Om den körs lokalt, bekräfta att pg_hba.conf tillåter md5 eller scram-sha-256 autentisering för den anslutande värden.
Schemat hittades inte när entiteten refererar till ett icke-offentligt schema
Symptom: DAB returnerar ett relation "tablename" does not exist fel trots att tabellen finns i databasen.
Orsaka: Entitetens source fält utelämnar schemaprefixet, så PostgreSQL söker bara efter public schemat som standard.
Upplösning:source Uppdatera värdet i dab-config.json för att inkludera schemaprefixet, till exempel sales.orders. Bekräfta att databasanvändaren har USAGE på schemat genom att köra GRANT USAGE ON SCHEMA sales TO myuser; i psql.
Nödvändigt SSL-fel vid anslutning till Azure Database for PostgreSQL
Symptom: Anslutningar till Azure Database for PostgreSQL misslyckas med SSL connection is required.
Orsaka: Azure Database for PostgreSQL tillämpar SSL som standard. Anslutningar utan SSL avvisas.
Upplösning: Lägg till Ssl Mode=Require; i anslutningssträngen. För fullständig certifikatverifiering anger även Trust Server Certificate=false och ange certifikatsökvägen för servercertifikatutfärdaren via Root Certificate=path/to/ca.pem. Ladda ned certifikatpaketet från Azure-portalen under serverns nätverksinställningar .
Lagrade procedurer stöds inte
Symptom: Att konfigurera en PostgreSQL-lagrad procedur eller funktion som en entitetskälla misslyckas, eller så beter sig entiteten inte som förväntat.
Orsaka: Data API Builder stöder för närvarande inte lagrade procedurer för PostgreSQL. Det här är en känd begränsning som spåras i GitHub-problem #1023.
Upplösning: Använd en tabell eller vy som entitetskälla i stället. Följ GitHub-problemet för uppdateringar om när stöd för postgreSQL-lagrad procedur läggs till.
Databasprincipen tillämpas inte för skapa-åtgärder
Symptom: En create-mutation eller POST-begäran lyckas även när en databasprincip ska begränsa åtgärden.
Orsaka: Databasprincipstöd för Skapa åtgärder i PostgreSQL har ännu inte implementerats. Det här är en känd begränsning som spåras i GitHub-problemet #1334.
Upplösning: Använd rollbaserade behörigheter för att begränsa skapa åtkomst tills databasprincipstöd för PostgreSQL Create är tillgängligt.
Databasprincipen tillämpas inte för PUT- och PATCH-åtgärder
Symptom: En PUT- eller PATCH-begäran på en PostgreSQL-entitet lyckas även när en databasprincip bör begränsa den.
Orsaka: Databasprincipstöd för PUT- och PATCH-åtgärder i PostgreSQL har ännu inte implementerats. Det här är en känd begränsning som spåras i GitHub-problemet #1372.
Upplösning: Använd rollbaserade behörigheter för att begränsa uppdateringsåtkomsten tills databasprincipstöd för PostgreSQL-uppdateringsåtgärder är tillgängligt.
Autentisering med Behalf-Of (OBO) stöds inte
Symptom: Konfiguration av OBO-autentisering (On-Behalf-Of) för en PostgreSQL-backad DAB-instans misslyckas eller så vidarebefordras inte token till databasen som förväntat.
Orsaka: OBO-autentisering stöds för närvarande endast för SQL Server och Azure SQL. Stöd för PostgreSQL, MySQL och Azure Cosmos DB har ännu inte implementerats. Det här är en känd begränsning som spåras i GitHub-problem #3159.
Upplösning: Använd en autentiseringsmetod som stöds, till exempel autentiseringsuppgifter för anslutningssträngar eller hanterad identitet för PostgreSQL. Följ GitHub-problemet för uppdateringar om när OBO-stöd utökas till icke-SQL Server-databaser.