3.4. 每个用户数据库

3.4.1. 每个用户数据库选项

[couch_peruser]
enable

如果设置为 true,couch_peruser 确保为 _users 中的每个文档存在一个私有的每个用户数据库。这些数据库只能由相应的用户写入。数据库名称采用以下格式:userdb-{UTF-8 hex encoded username}

[couch_peruser]
enable = false

注意

在启用 couch_peruser 之前,必须存在 _users 数据库。

提示

在 NodeJS 下,用户名可以这样转换为数据库名称,反之亦然

function dbNameToUsername(prefixedHexName) {
  return Buffer.from(prefixedHexName.replace('userdb-', ''), 'hex').toString('utf8');
}

function usernameToDbName(name) {
  return 'userdb-' + Buffer.from(name).toString('hex');
}
delete_dbs

如果设置为 true 并且删除了用户,相应的数据库也会被删除。

[couch_peruser]
delete_dbs = false

注意:使用 JWT 授权时,提供的令牌必须包含一个自定义的 _couchdb.roles=['_admin'] 声明,以便为 sub= 声明中提供的用户正确创建并访问每个用户数据库。

q

如果设置,请指定每个用户数据库的分片值。如果未设置,将使用集群默认值。

[couch_peruser] q = 1