Standard-Schema einstellen

Hallo an alle,

ich habe im Schema public mehrere Tabellen. Verbinde ich mit einem externen Programm auf die Datenbank mit dem postgres Benutzer kann ich ganz normal mit z.b “SELECT * FROM benutzer” die Tabelle auslesen. Benutze ich aber nun einen von mir selbsterstellten user dann bekomme ich die Fehlermeldung, dass die Relation benutzer nicht existiert. Würde ich jetzt “SELECT * FROM public.benutzer” verwenden geht wieder alles. Ich muss also das public Schema mit angeben. Das Problem ist jetzt, dass ich mein ganzes Programm umschreiben müsste. Gibt es eine möglichkeit, dass das Schema public sozusagen Standard ist und dort zuerst nach den Tabellen gesucht werden soll? Wieso geht es dann mit dem Benutzer postgres?

Ich habe die Forumssuche bereits benutzt aber zu diesem Thema nichts gefunden irgendwie.

Vielen Dank schonmal für eure Tips.

Das von Dir gewünschte Verhalten ist eigentlich Default. Du kannst versuchen, nochmals via ‘alter database … set search_path …’ (IIRC aus dem Gedächtniss) das zu setzen, aber, wie schon gesagt, sollte per Default schon so sein.

Ähm, versuch mal ein 'alter user … ', um für den User das so zu setzen.


Andreas

Logg dich mal als dieser User in die Datenbank ein und gib ein:

SHOW search_path;

Danke hat geklappt. Das “search_path” war schon der richtige Hinweis von euch. Hab in der postgresql.conf nach search_path gesucht und den Wert von “$user”, public auf public, “$user” geändert. Also die Reihenfolge geändert. Jetzt funktioniert es ohne weiteres. :sunglasses:

Dort sollte von Anfang an “public” mit drin stehen.
Hat jemand die Datei nachträglich geändert?