2010-05-04 63 views
10

CouchDB中的網站 - >技術概述 - >安全和驗證 - http://couchdb.apache.org/docs/overview.html - 它寫道,(在讀者訪問 部分)「保護文檔內容,CouchDB的文檔可以有一個讀者名單 這是一個。允許讀取文件讀寫名可選列表。當使用 讀者名單,受保護的文檔只能由列出的用戶看到。」我搜索瞭如何使用它,但我什麼都沒找到。那麼它實際上是否被使用,如果 它是如何?CouchDB的讀取權限

謝謝。

- Mustafa

回答

13

你說得對,它很混亂。請參閱0.11 "breaking" changes瞭解更多信息。

每個文檔閱讀控制是不可能的;該readers字段是訪問整個DB。有關更多信息,請在蒲團中加載您的數據庫,然後單擊頂部的Security...鏈接。

原因讀取控制是不可能的,因爲視圖(映射,減少)可以得出從數據庫中的所有文檔的信息,所以一般不可能阻止用戶以某種方式看到私人數據。

有關詳細的訪問控制,你有兩個主要選擇:

  1. 讓您的用戶和數據庫之間的應用程序。 99%的使用MySQL的Web應用程序已經這樣做了(例如Ruby on Rails)。保持數據庫中的ACL信息,並且您的應用程序根據ACL授予/拒絕訪問權限。
  2. 保持每個用戶專用的數據庫。你可能不得不修改你的架構,但可能不是。您可以使用複製和過濾器將用戶的數據只複製到他的數據庫中。然後他從他的數據庫中讀取並寫入中央數據庫。
+0

在不久的將來改變這一什麼計劃嗎? – 2010-09-18 04:34:50

+0

我不希望在可預見的將來改變架構。不過,我絕對期望使用工具來幫助平滑開發。例如,讓一個用戶數據庫只有一部分數據的自動化方式將會受到社區的歡迎! – JasonSmith 2010-10-01 07:51:58

+3

嗨,泰勒。一年後,這是開發人員提出的建議。 Chris對全功能訪問控制列表有所瞭解。另外,我正在草擬一個用戶的想法,他們可能不查詢文檔,但誰可能查詢'_show'函數。希望很快會有更多的選擇。 – JasonSmith 2011-09-15 13:43:32

0
  1. 以管理員身份登錄到CouchDB。
  2. 打開你想要保護的特定數據庫
  3. 點擊安全該特定數據庫的按鈕。
  4. 將用戶添加到成員名誰可以讀取。 (至少添加管理員用戶名)作爲數組的字符串元素。
    例。 名稱: 「用戶名1」, 「用戶名2」]
  5. 點擊更新按鈕

Click here to see the image

+0

他在詢問文檔訪問權限,而不是數據庫訪問權限。 – Kinesias 2017-03-11 22:00:04