簡體   English   中英

如何使用同一個CouchDB實例中的許多應用程序來處理`_users`數據庫中的用戶?

[英]How to handle users in `_users` database with many applications in the same CouchDB instance?

根據Matt Woodward的博客,在《 CouchDB身份驗證和安全性權威指南》中,他指出了一些有關CouchDB的知識,我不確定我是否完全理解。

  1. 他說:

    “基本上,CouchDB中的安全性工作方式是將用戶存儲在_users數據庫中(如果需要,也可以存儲在其他地方;可以在配置文件中更改此信息)...”。

因此,整個CouchDB的所有用戶都存儲在一個數據庫中,對嗎? 這意味着,如果我在同一個CouchDB中的不同數據庫中運行多個應用程序,我必須處理要訪問這兩個應用程序的用戶,對嗎?

  1. 他還說

    “數據庫讀取器只能讀取特定數據庫上的文檔和視圖,而沒有其他權限”。

    然后,他補充

    “默認情況下,即使您在數據庫上定義了數據庫管理員,默認情況下,所有數據庫都對匿名用戶啟用了讀/寫功能。”

那么匿名用戶是否可以閱讀特定數據庫中的文檔?

首先,我要說的是,這些文章雖然仍然很有啟發性,但它們已有幾年歷史,並且可能已過時。 如果您想了解CouchDB,我建議您通讀官方文檔

現在回答您的問題。 (有關此處此處的安全性的更多信息)

在CouchDB中,可以在開發應用程序時逐步建立安全性。 默認值是非常開放的,您可以通過添加配置來鎖定事物。 (我認為這是一種非常直觀的方式)

默認情況下,CouchDB處於“ 管理方 ”模式,這意味着任何人都可以讀寫任何內容。 (因為每個用戶(包括匿名用戶)都被視為管理員)

任何管理員用戶添加到服務器后(通過配置,而不是_users數據庫),聚會結束了。 這意味着某些操作現在只能由您明確定義的管理員執行。 (例如創建數據庫,設置配置等​​)

在這種狀態下,匿名用戶仍然可以在已創建的任何數據庫中讀取/寫入普通文檔。 (設計文檔只能由管理員修改)如果准備開始鎖定單個數據庫,則可以通過在給定數據庫的安全對象中指定用戶/角色來實現。

當人們使用術語“數據庫讀取器”時,它們表示已將用戶添加為安全對象中的“成員”。 (通過用戶名或角色)(通過在數據庫的安全對象中指定任何成員或管理員),那么只有那些用戶才具有數據庫內部的權限,而所有其他用戶將被禁止。

總而言之,匿名用戶默認可以讀取/寫入任何內容。 一旦指定了管理員,安全性就會提高,某些操作只能由該管理員執行。 如果指定數據庫成員/管理員,則數據庫的安全性將進一步提高,僅允許那些用戶甚至讀取數據庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM