【问题标题】:CouchDB and PouchDB plain users can create DatabasesCouchDB 和 PouchDB 普通用户可以创建数据库
【发布时间】:2015-06-20 17:18:57
【问题描述】:

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

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

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

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

我该如何解决这个问题?

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 中

测试用户:

{ "_id": "org.couchdb.user:testuser", "_rev": "1-7d28b3388a62cfca103cbe3642549bee", "password_scheme": "pbkdf2", “迭代”:10, “类型”:“用户”, “名称”:“测试用户”, “角色”:[ “测试用户” ], “派生密钥”:“2181a44141d6d6aa2061bb2c5c057451acc6461e”, “盐”:“2184888b099f37605feca0a22e5b6bb9” }

【问题讨论】:

    标签: couchdb pouchdb


    【解决方案1】:

    您的 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

    【讨论】:

    • 不,CouchDB 未处于派对模式。我修好了。 curl -x put CMD 给出未经授权的错误:您不是服务器管理员。但是将我的 pouchdb 与 remoteCouch 复制到 someuser:somepassword@path.to.couchdb.com:5984/somedatabase 会添加新的数据库。
    • 当我查看 /_config/admins 时,我只看到一个服务器管理员(不是 testuser)。用户仅在 /_users 中。我还使用 /_user/testuser 文档编辑了问题
    • 当您查看 Chrome 控制台时,您会看到什么?您应该看到创建数据库的正常 PUT 请求。它还将包括所有标题信息,以告诉您用户名和密码是什么。我很确定数据库已经存在或者正在发生其他事情。 PouchDB 没有比 curl 更特殊的凭据...
    • 好的,感谢您的帮助。我想我在这里遇到了逻辑故障。看来,如果我在 Futon 中使用管理员帐户登录,则 PUT uri 中的用户凭据将被忽略。这意味着我实际上是使用管理员帐户而不是普通用户活跃的。让我感到困惑的是,这种行为也适用于其他设备。然而问题不再发生。所以我想这已经解决了。
    猜你喜欢
    • 1970-01-01
    • 2018-06-11
    • 1970-01-01
    • 2015-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-06
    • 1970-01-01
    相关资源
    最近更新 更多