2015-04-14 33 views
2

我不希望普通用戶能夠創建數據庫。CouchDB和PouchDB普通用戶可以創建數據庫

在被褥屏幕/ _utils中,以普通用戶身份登錄時,所有功能都按預期運行。只有管​​理員可以創建數據庫。

但是,當我將我的pouchDB與couchDB同步時,普通用戶也可以創建(複製?)數據庫。我想添加新的數據庫僅限於管理員用戶。

另外我剛剛注意到,即使用戶被限制,現有的數據庫也會被編輯。

我該如何解決這個問題?

var remoteCouch = http://testuser:[email protected]{domain}.iriscouch.com/testdb; 

PouchDB.debug.disable(); 

if (remoteCouch) { 
    sync(); 
} else { 
    console.log("No remote server."); 
} 

function sync() { 
    var opts = {live: true}; 
    db.replicate.to(remoteCouch, opts, syncError); 
    db.replicate.from(remoteCouch, opts, syncError); 
} 

編輯

TESTUSER也沒有/ _config /管理員

TESTUSER:

{ 
    "_id": "org.couchdb.user:testuser", 
    "_rev": "1-7d28b3388a62cfca103cbe3642549bee", 
    "password_scheme": "pbkdf2", 
    "iterations": 10, 
    "type": "user", 
    "name": "testuser", 
    "roles": [ 
     "testuser" 
    ], 
    "derived_key": "2181a44141d6d6aa2061bb2c5c057451acc6461e", 
    "salt": "2184888b099f37605feca0a22e5b6bb9" 
}

回答

4

是您的CouchDB在管理派對模式?如果不是,那麼只有管理員應該能夠創建數據庫,無論是通過Futon還是PouchDB。

PouchDB沒有做任何特別的事情;你可以模擬一下PouchDB是通過使用curl做:

curl -X PUT http://someuser:[email protected]:5984/somedatabase 

你確定你的testuser是不是管理員?如果您給PouchDB的用戶是管理員,那麼是的,用戶將能夠創建他們自己的數據庫。在認證

更多信息可以在這裏找到:https://github.com/nolanlawson/pouchdb-authentication#couchdb-authentication-recipes

+0

沒有CouchDB的是不是在派對模式。我修正了這一點。 curl -x把CMD給出一個未經授權的錯誤:你不是服務器管理員。但是用remoteCouch將我的pouchdb複製到http:// someuser:[email protected]:5984/somedatabase會添加新的數據庫。 –

+0

當我查看/ _config/admins時,我只看到一個服務器管理員(不是testuser)。用戶只在/ _users中。我還使用/ _user/testuser doc –

+0

編輯了該問題當您查看Chrome控制檯時,您看到了什麼?你應該看到一個正常的PUT請求來創建數據庫。它還將包含所有標題信息,告訴你用戶名和密碼是什麼。我很確定數據庫已經存在或者其他事情正在發生。 PouchDB沒有比捲曲更多的特殊憑據... – nlawson

相關問題