CouchDB和PockDB普通用户可以创建数据库
我不希望普通用户能够创建数据库 在Futon Screen/_utils中,当以普通用户身份登录时,所有功能均按预期运行。只有管理员才能创建数据库 但当我将我的PockDB与couchDB同步时,普通用户也可以创建(复制?)数据库。我希望添加新数据库只限于管理员用户 我还注意到,即使用户受到限制,现有数据库也会被编辑 我怎样才能解决这个问题CouchDB和PockDB普通用户可以创建数据库,couchdb,pouchdb,Couchdb,Pouchdb,我不希望普通用户能够创建数据库 在Futon Screen/_utils中,当以普通用户身份登录时,所有功能均按预期运行。只有管理员才能创建数据库 但当我将我的PockDB与couchDB同步时,普通用户也可以创建(复制?)数据库。我希望添加新数据库只限于管理员用户 我还注意到,即使用户受到限制,现有数据库也会被编辑 我怎样才能解决这个问题 var remoteCouch = http://testuser:testuser@{domain}.iriscouch.com/testdb; Pou
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也不在/\u config/admins中
测试用户:
{
"_id": "org.couchdb.user:testuser",
"_rev": "1-7d28b3388a62cfca103cbe3642549bee",
"password_scheme": "pbkdf2",
"iterations": 10,
"type": "user",
"name": "testuser",
"roles": [
"testuser"
],
"derived_key": "2181a44141d6d6aa2061bb2c5c057451acc6461e",
"salt": "2184888b099f37605feca0a22e5b6bb9"
}
{
“_id”:“org.couchdb.user:testuser”,
“修订版”:“1-7D28B3388A62CFCA103CBE364259BEE”,
“密码方案”:“pbkdf2”,
“迭代”:10,
“类型”:“用户”,
“名称”:“testuser”,
“角色”:[
“testuser”
],
“派生密钥”:“2181A44141D6AA2061BB2C5C057451ACC6461E”,
“盐”:“2184888B099F37605FeCa0A22E5B6B9”
} 您的CouchDB是否处于管理方模式?如果不是,那么应该只有管理员能够创建数据库,无论是通过Futon还是PockDB PockDB没有做任何特别的事情;您可以使用curl模拟PockDB正在执行的操作:
curl -X PUT http://someuser:somepassword@path.to.couchdb.com:5984/somedatabase
你确定你的testuser
不是管理员吗?如果您提供给PockDB的用户是管理员,那么是的,用户将能够创建自己的数据库
有关身份验证的更多信息,请参见此处:否CouchDB未处于参与方模式。我修好了。curl-xput命令给出了一个未经授权的错误:您不是服务器管理员。但是使用RemoteCoach复制我的PockDB会添加新的数据库。该用户仅在/\u用户中。我还用/_user/testuser文档编辑了这个问题。当你在Chrome控制台中查看时,你看到了什么?您应该会看到创建数据库的普通PUT请求。它还将包含所有标题信息,告诉您用户名和密码是什么。我很确定数据库已经存在或者正在进行其他事情。PockDB没有比curl更多的特殊凭证…好的,谢谢你的帮助。我想我在这里有一个逻辑错误。看起来,如果我使用Futon中的管理员帐户登录,则PUT uri中的用户凭据将被忽略。这意味着我实际上是通过管理员帐户而不是普通用户激活的。让我困惑的是,这种行为也适用于其他设备。然而,这个问题不再发生了。所以我想这已经解决了。