habe folgendes Problem in einer Windows-Installation
mit Postgres als Dienst:
Ich moechte per COPY aus der postgreSQL-DB auf
eine Netzwerkfreigabe schreiben. Die Netzwerkfreigabe
soll nur in der Umgebung der postgreSQL-DB-Instanz,
gestartet durch den Dienst, sicht- und nutzbar sein.
Einiges habe ich schon probiert incl. Aufrufen von
Zusatzscripten etc, aber das klappt nicht. Aus der
postgreSQL-DB kann ich die Netzwerkfreigabe ja auch
nicht einrichten, das muss vorher passieren.
Habt ihr einen Hinweis, wie ich das Problem loesen kann?
Also, um das mal zu rekapitulieren: Du möchtest in ein Netzlaufwerk schreiben, von der Datenbank aus. Dort hinein darf auch nur die Datenbank schreiben, kein anderes Programm?
Naja, es ist ein lokaler Benutzer samt Passwort des
entfernten Rechners auf der Freigabe schreibberechtigt.
Mein erster Gedanke war: als Postgres-Benutzer
(postgreSQL-Dienst-Anmeldekonto) anmelden, die Freigabe
permanent auf ein Laufwerk mappen (Windows merkt sich
die Anmeldedaten), abmelden und den Dienst-postgreSQL
dann mit dem naechsten Systemstart hochlaufen lassen.
Und in der DB waere dann das gemappte Laufwerk sichtbar.
Mal ganz ehrlich: das Problem hat ungefähr genau gar nichts mit PostgreSQL zu tun, oder? Das ist ein reines Windows Problem.
Damit bist du bei “Installation von PostgreSQL” im falschen Forum. Ev. weiß das hier jemand aus der Windows Ecke, aber an sich solltest du in einem Windows-spezifischen Forum nachfragen.
Nur als (kranke) Idee: nimm pl/perlU, rufe damit den ‘net use …’ - Befehl auf, mache Dein COPY, dann wieder mit pl/perlU das Mapping entfernen. Natürlich ist in dieser Zeit das Laufwerk dann dennoch sichtbar, security by obscurity, you know?
Erstmal danke der Antworten und dass das
“nicht sichtbar” entsprechende Kommentare
nach sich zieht, habe ich schon geahnt. Ihr habt
auch recht, dass das eigentlich ein BS-Problem ist.
Ich dachte bloss, jemand hat schonmal dasselbe
versucht.
Was ich mit einer mini-Exe (Call: ‘net use…’), als
PostgreSQL-Dienst gestartet, herausbekommen habe,
ist, dass das im Dienst gemappte LW nicht von anderen
Instanzen ansprechbar ist. Sichtbar, aber nicht benutzbar.
Es gibt noch die Loesung, den postgreSQL-Benutzer
als Schreibberechtigten auf dem entfernten Share
aufzunehmen, aber die Rechner kennen sich nicht,
weil unterschiedliche Domaenen. OK, ich sehe schon,
irgendwie ist es etwas verzwickt.
Die Loesung mit dem pl/perlU werde ich mal ausprobieren,
aber die CALL-Befehle mit net use sind nicht so richtig
performant.