每个用户一个数据库和安全性



我正在尝试实现一个使用 couchdb 作为后端的应用程序,但问题是, 安装 couchdb 时,couchdb 允许任何人进入 couchdb 并创建/删除/更新数据库,因此我们为 couchdb 服务器配置 admin(super admin(以防止匿名 如果我们在安装 couchdb 服务器时配置 superadmin,那么普通用户无法创建数据库,因此不会为用户创建 userdb。只有超级管理员才有权在 couchdb 中创建数据库。即使是具有"管理员"角色的用户也无法在 couchdb 中创建 db。

我只是自己处理了所有这些,几乎找不到任何关于它的信息......

从文档中:

用户只能访问(GET /_users/org.couchdb.user:Jan(或修改(PUT /_users/org.couchdb.user:Jan(他们拥有的文档

这意味着用户可以将自己添加到_users数据库。 因此,如果已打开couch_peruser,则运行以下curl命令将创建用户jan以及userdb-6a616e数据库。

curl -X PUT http://localhost:5984/_users/org.couchdb.user:jan 
-H "Accept: application/json" 
-H "Content-Type: application/json" 
-d '{"name": "jan", "password": "apple", "roles": [], "type": "user"}'

您可以使用 PouchDB 身份验证插件中的 db.signUp(( 函数来有效地执行相同的操作。 此外,在最初为新的远程 PouchDB 实例创建dbvar 时,我必须手动编码用户名:

function encode (str) {
return unescape(encodeURIComponent(str))
.split('').map(function (v) {
return v.charCodeAt(0).toString(16)
}).join('')
}
var db = new PouchDB('http://localhost:5984/userdb-' + encode(username), {
auth: {
username: username,
password: username
},
skip_setup: true // Because the DB won't exist initially
})

相关内容

  • 没有找到相关文章

最新更新