[英]Access filesystem via connection to remote PostgreSQL server
我們的PostgreSQL在一個unix框上運行,並且有多個用戶具有單獨的unix帳戶和單獨的數據庫登錄名。 我們嘗試為這些用戶啟用的工作流程是:
絆腳石是如何在登錄PostgreSQL時訪問文件。 乍一看,這似乎不可能安全地進行,因為數據庫是在postgres
帳戶下運行的,該帳戶甚至無法訪問屬於其他unix帳戶的文件。 開箱即用,我認為PostgreSQL用戶訪問本地文件的唯一方法是(a)使這些文件可由postgres
unix帳戶讀取,並且(b)為數據庫用戶提供更高的特權,以允許他們使用COPY FROM
Postgres中的COPY FROM
命令。 這是不可能的。 用戶必須不能讀取彼此的數據。
我們當前使用的解決方法是將外殼程序psql
到服務器中並運行psql
,該操作允許用戶使用\\copy
meta-command從本地文件中提取數據。 但是,這使工作流程變得復雜,並且對大多數不熟悉unix的用戶來說並不十分令人滿意。 相反,他們希望從名為SAS的基於PC的分析程序包驅動整個過程,該程序包可以通過ODBC直接連接到Postgres。
我正在尋找一種解決此問題的創造性方法。 顯然,我上面列出的天真的工作流程與unix安全模型完全不符。 但是,從用戶的角度來看,是否有一種替代方法可以起到類似的作用? 我們很高興考慮存儲過程,中間人代理等。
如果您的用戶通過SAS連接,他們是否可以通過SAS-PSQL連接自己上傳文件? 以SAS用戶的身份講這當然是可能的。 就像是
libname psql odbc (connection-string);
data psql.mytable;
set sastable;
run;
當然,這需要先將其本地讀取到SAS中,但這可能並不重要。 這里的主要潛在問題是時間-毫無疑問,這種傳輸方式比通過SAMBA傳輸要慢。 但是為簡單起見,花時間值得嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.