2014-04-02 14 views
3

我遇到了問題,我創建的用戶可以實際提交任何內容到我列出的數據庫中。我已經按照此處列出的步驟(Creating regular users in CouchDB)審閱了無數頁面的文檔,試圖對此進行分類。 (例如:http://wiki.apache.org/couchdb/Security_Features_Overview)。無法使用用戶將文檔添加到數據庫中 - 「您不是服務器管理員」

我正在使用v1.5,並嘗試將用戶「testAdmin」設置爲「測試」數據庫的管理員。 superadmin,在這是我的管理員帳戶通過被褥界面創建。

如果我檢查安全文件,我可以看到我的權限也應該允許testadmin的賬戶用戶訪問DB:

curl -X GET http://superadmin:[email protected]:5984/test/_security 

響應:

{ 
     "admins": 
     { "names":["testAdmin"], 
      "roles":[] 
     }, 
     "readers": 
     { "names":["testUser"], 
      "roles":[] 
     } 
    } 

然後,如果我運行此,我得到「你不是服務器管理員。」

curl -X PUT http://testAdmin:[email protected]:5984/test/ -d '{"abc": "def"}' 

響應:

{"error":"unauthorized","reason":"You are not a server admin."} 

我已經試過了用戶切換到一個讀者,我也用我已經創建,因此目前被列爲讀者給用戶嘗試,和我不斷遇到同樣的錯誤。

編輯:我可以用我創建的用戶登錄到蒲團,他們的權限似乎都在蒲團內正常工作,但我仍然無法成功使用curl。

+0

只要確定:您是否知道您不需要任何用戶創建就可以開始使用CouchDB? –

+0

你能指定你打算做什麼嗎?誰可以做什麼? –

+1

版本1.5的官方文檔是[here](http://docs.couchdb.org/en/1.5.x/)。有幾個部分可能對你的問題很有意思([安全](http://docs.couchdb.org/en/1.5.x/intro/security.html),[更新驗證](http://docs.couchdb.org /en/1.5.x/couchapp/ddocs.html#vdufun),[認證和授權](http://docs.couchdb.org/en/1.5.x/config/auth.html))。 –

回答

0

@Kxepal已經解決了這個問題。所以只是爲了清楚這是發生了什麼。

你有一個superadmin誰在couchdb中是一個服務器管理員,可以做任何事情。他/她可以創建數據庫,刪除它們,獲取任何文檔等。

然後,您有其他用戶擁有特權。因此,當您創建_security文檔時,您所做的是告訴couchdb,dbadmin是數據庫的管理員,dbreader是數據庫的member。從蒲團這是管理員和成員的定義

數據庫管理員可以更新設計文檔和編輯管理員和成員名單。

數據庫成員可以訪問數據庫。如果沒有成員被定義,數據庫是公開的。

一旦您定義了一個管理員或成員,您的數據庫就不會被公開。只有具有足夠特權的用戶才能訪問它們。

隨着@Kxepal的請求指出你試圖創建一個數據庫。數據庫管理員不能創建數據庫。這個權利屬於服務器管理員,在你的情況superadmin。

1

使用

捲曲

curl -u USER:PASS -X PUT "http://host:port/db_target" -d '{...}' 

這可能是解決最初的問題。

相關問題