Hallo zusammen,
ich weiß nicht, ob ich ein Postgres oder ein Windows Problem habe.
Ich habe Postgres 9.3.4 unter Windows Server 2008 R2 laufen und möchte meine Daten und Indizes gerne in unterschiedlichen Tablespaces auf unterschiedlichen Platten ablegen. Leider kriege ich es anscheinend nicht auf die Rolle, Postgres die nötigen Rechte zuzuweisen. Der Benutzer “postgres” hat eigentlich Vollzugriff auf das Verzeichnis “D:\PostgreSQL”, in dem der Tablespace erstellt werden soll, das kann ich mir auch über die “Effektiven Berechtigungen” anzeigen lassen. Trotzdem bekomme ich über psql beim Befehl
CREATE TABLESPACE ts_thai OWNER postgres LOCATION E'D:\\PostgreSQL\\Thai'
die Fehlermeldung
FEHLER: konnte Zugriffsrechte für Verzeichnis "D:/PostgreSQL/Thai" nicht setzen: Permission denied
Der Ordner “D:\PostgreSQL\Thai” erbt die Berechtigungen für Postgres von oben und übernimmt diese auch für alle Unterordner und Dateien. Es spielt auch keine Rolle, ob nur das Verzeichnis “D:\Postgres” diese Berechtigungen hat, oder ob ich per
ICACLS D:\PostgreSQL\Thai\ /grant postgres:F /t
das Recht noch einmal explizit setze. Ich kriege es nur in den Griff, wenn der Nutzer “Jeder” Vollzugriff auf den jeweiligen Ordern hat.
Das gleiche Problem habe ich auch mit dem Auslagern von pg_xlog per Symlink oder Junction.
Für Tipps wäre ich sehr dankbar,
Gruß, Bernd