Datei mit Python über PostgreSQL erstellt - Rechteprobleme

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
PreludeBA4
User
Beiträge: 14
Registriert: Dienstag 4. Mai 2010, 08:49

Hallo Leute,

ich habe da mal eine Frage. Ich habe eine PostgreSQL Funktion geschrieben:

Code: Alles auswählen

CREATE FUNCTION py_export_daten(path text, filename text, head text, host text, benutzer text, passwort text, dbname text, query text, dbtyp text, limiter text, seperator text)
  RETURNS text
AS $$
	from pg_csv_export import clsExportCSV
	clsExportCSV = clsExportCSV()
	erg = clsExportCSV.funcExportCSV(path, filename, head, host, benutzer, passwort, dbname, query, dbtyp, limiter, seperator)

	return erg
$$ LANGUAGE plpythonu
Diese ruft ein Python-Script auf, welches Daten aus einer Datenbank liest und in eine Datei schreibt:
http://www.python-forum.de/pastebin.php?mode=view&s=29

(Ich weis der Code ist momentan nicht schön und recht unordentlich... Wird auch noch aufgeräumt aber darum geht es ja nicht)

Nun gibt es aber ein Problem. Die Datei wird mit den Rechten 600 erstellt und man kann sie so ohne weiteres nicht mal ansehen... :( Owner ist postgres:postgres...

Code: Alles auswählen

rlehne@erlabrunn:~/Dokumente/test_pgpy$ ls -l
insgesamt 32
....
-rw------- 1 postgres postgres  116 2010-06-01 14:49 test_pg_20100531_3.csv
....
chmod o.ä. über Python funktioniert nicht und man muß die Rechter per Hand ändern. Das ist sehr Nervig.

Gibt es eine Möglichkeit, dass er die Datei mit anderen Rechten erstellt?! Suche hier schon wie bekloppt nach irgendwelchen Rechtevergaben mit Python und PostgreSQL... :(


Grüße
Ronny
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

PreludeBA4 hat geschrieben:chmod o.ä. über Python funktioniert nicht [...]
Welche Fehlermeldung erhältst du?
PreludeBA4
User
Beiträge: 14
Registriert: Dienstag 4. Mai 2010, 08:49

Wenn du mir sagst, wie ich die Fehlermeldung an Postgres zurück geben kann, kann ich sie dir sagen :? :(
frabron
User
Beiträge: 306
Registriert: Dienstag 31. März 2009, 14:36

Das Problem ist, dass dein Skript die umask vom postgres Benutzer erbt und deshalb so restriktive Rechte setzt. Evt. könnte dir os.umask helfen
PreludeBA4
User
Beiträge: 14
Registriert: Dienstag 4. Mai 2010, 08:49

Danke schön...
Das hat mir wunderbar geholfen :D
frabron
User
Beiträge: 306
Registriert: Dienstag 31. März 2009, 14:36

Prima, das es funktioniert hat. War von mir auch eher geraten als gewusst :)
Antworten