2010-12-13 87 views
2

如何在CouchDB中處理認證?假設我創建管理員用戶和讀者,併爲他們分配角色。還要說我將它們分配給一個單獨的數據庫。在文件系統級別,對於沒有進行身份驗證的人來說,有沒有辦法查看存儲在數據庫中的數據?數據是否以純文本形式存儲在文件中?這在CouchDB中如何處理?CouchDB如何處理數據?

回答

2

通過數據庫接口,角色與其他數據庫中的角色一樣強大。只要他們無法獲得文件,它就像您的權限和密碼一樣安全。但是,如果他們這樣做,那麼CouchDB中絕對沒有壓縮或加密功能。如果文件系統訪問控制是一個問題,那麼對代碼中的數據(或者抽象層中的數據)進行加密 - 當然,任何掌握數據庫文件系統的人都可能會找到代碼的解密密鑰。

這不是一個純文本文件,它是一個組合數據和索引的二進制文件,但您可以將它複製到本地CouchDB安裝並以此方式查看,或者只需在一個好的文本編輯器中打開即可。數據塊以純文本(實際上是JSON)存儲,並且不易讀取,儘管二進制附件仍然是二進制文件。

+0

我在辯論使用它的Android,但它似乎並沒有辦法將它足夠鎖定。如果我在將數據放入數據庫之前對數據進行加密,那麼map/reduce將如何工作?我需要地圖函數中的解密函數。 – electrichead 2010-12-15 12:31:08

+1

對不起,錯過了您的評論。 Map/Reduce仍然可行,但有兩點需要注意:每個值必須始終使用相同的密鑰/ salt/IV,以便相同的值以相同的方式加密,並且顯然完全失去了部分/類似的匹配。 SQLite可以使用Android上的全透明加密來構建,它允許所有函數正常工作,但對CouchDB執行相同的操作將是一項艱鉅的任務。祝你好運,但是你走了。 – SilverbackNet 2010-12-18 05:36:10