Tablespace anlegen unter Windows Server 2008 R2

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. :confused:
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

Vermutlich letzteres - aber ich nix Windows. Was für ein Filesystem? (ich frag nur zur Sicherheit …)

NTFS, also nicht übers Netz, falls Du das meintest

Ja, das war der Hintergedanke. Oder USB-Stick :wink:

Hm, läuft den PostgreSQL überhaupt unter dem Benutzer Postgres? Nicht das der als “Netzwerkdienst” etc. läuft…

cu tb

Ha! Volltreffer! Vielen Dank, genau das war’s.
Tablespace anlegen funktioniert nun und das Verschieben von pg_xlog mittels Junction klappt ebenfalls.

Einen schönen Tag, Gruß, Bernd