CouchDB和PouchDB普通用户可以创建数据库

时间:2015-04-14 22:30:23

标签: couchdb pouchdb

我不希望普通用户能够创建数据库。

在Futon Screen / _utils中,当以普通用户身份登录时,一切都按预期运行。只有管​​理员才能创建数据库。

但是当我将我的pouchDB与couchDB同步时,普通用户也可以创建(复制?)数据库。我希望添加新数据库仅限于管理员用户。

我还注意到,即使用户受到限制,现有的DB也会被编辑。

我该如何解决这个问题?

var remoteCouch = http://testuser:testuser@{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 / admins

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"
}

1 个答案:

答案 0 :(得分:4)

您的CouchDB是否处于管理员方式?如果不是,那么只有管理员应该能够创建数据库,无论是通过Futon还是PouchDB。

PouchDB没有做任何特别的事情;您可以使用curl模拟PouchDB的功能:

curl -X PUT http://someuser:somepassword@path.to.couchdb.com:5984/somedatabase

您确定testuser不是管理员吗?如果您向PouchDB提供的用户是管理员,那么用户将能够创建自己的数据库。

有关身份验证的更多信息,请访问:https://github.com/nolanlawson/pouchdb-authentication#couchdb-authentication-recipes