2013-02-21 39 views
3

這樣做的背景是,我希望限制用戶管理,而不必讓前端應用程序具有對數據庫的完全訪問權限(用戶表的創建由後端進程完成, )。只能允許前端訪問當前登錄用戶有權讀取的表。原因是,前端的安全問題不應該揭示對整個數據庫的訪問權限,而只能在最壞的情況下對當前用戶的內容進行訪問,而我可以隨機地從數據庫中讀取數據而不會影響後端進程。django數據庫與不同用戶重新連接

因此,我想讓Django模型與給定的用戶連接,而不是settings.py中的django數據庫具有全局訪問權限。

這是否有可能不覆蓋核心數據庫連接?

回答

0

從Django 1.2或更高版本,您可以在settings.py中定義多個數據庫。雖然我從來沒有用過這個指向同一個數據庫,但我看不到任何理由,你將無法定義到同一個數據庫的多個連接,但具有不同的用戶憑證。

然後,您可以決定使用基於登錄的用戶(或不登錄的用戶視情況而定)在數據庫中的路由器(或多個)

這種情況的文檔是here其連接。

我發現他們選擇使用名爲'auth'的應用程序作爲示例混淆,但它只是一個像其他應用程序一樣的應用程序,所以不要混淆於認爲它與auth有關,即使在你的情況下,它會是。

+0

感謝您的回答,但這並不能解決我的問題:我必須經常在運行的生產環境中編輯settings.py。我想避免這一點。 – fdafgfdgfagfdagfdagfdagfdagfda 2013-05-13 09:08:55

+0

對不起,我不確定我是否理解爲什麼您認爲需要編輯生產環境中的設置文件才能正常工作?也許我在這裏錯過了一些東西。 – 2013-05-17 09:51:05

+0

後臺進程控制用戶認證和新用戶的註冊。用戶在那裏啓動項目等,在前端進行,前端將該信息提供給後端,後端控制用戶權限並在用戶執行操作時執行用戶操作權限是可以的。用戶仍然希望在他的前端看到他的項目狀態,所以他需要通過前臺訪問他的表格。爲了不打擾後臺,特別是不實時讀取,我們希望所有的讀取訪問直接在數據庫上,並通過後端進行全部寫入訪問。 – fdafgfdgfagfdagfdagfdagfdagfda 2013-05-17 13:43:15