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