Couchbase用户权限管理 #

一、认证概述 #

1.1 认证方式 #

Couchbase支持多种认证方式:

方式 说明 适用场景
本地认证 内置用户管理 开发、小规模部署
LDAP 企业目录服务 企业环境
RBAC 基于角色的访问控制 生产环境

1.2 用户类型 #

类型 说明
Administrator 集群管理员
Bucket User Bucket级别用户
Scope User Scope级别用户
Collection User Collection级别用户

二、内置角色 #

2.1 集群级别角色 #

角色 说明 权限
admin 完全管理权限 所有操作
cluster_admin 集群管理 集群配置、节点管理
ro_admin 只读管理员 查看集群状态
security_admin 安全管理 用户和角色管理

2.2 Bucket级别角色 #

角色 说明 权限
bucket_admin Bucket管理 Bucket所有操作
bucket_full_access 完全访问 Bucket读写和管理
data_reader 数据读取 SELECT查询
data_writer 数据写入 INSERT/UPDATE/DELETE
data_dcp_reader DCP读取 DCP流
views_admin 视图管理 视图操作
query_select 查询权限 SELECT语句
query_insert 插入权限 INSERT语句
query_update 更新权限 UPDATE语句
query_delete 删除权限 DELETE语句

2.3 Scope和Collection级别角色 #

角色 说明
scope_admin Scope管理权限
collection_admin Collection管理权限

三、用户管理 #

3.1 创建用户 #

命令行创建:

bash
/opt/couchbase/bin/couchbase-cli user-manage \
    --cluster localhost:8091 \
    --username Administrator \
    --password your-password \
    --set \
    --rbac-username app_user \
    --rbac-password password123 \
    --rbac-name "Application User" \
    --roles bucket_full_access[my-bucket] \
    --auth-domain local

REST API创建:

bash
curl -X PUT http://localhost:8091/settings/rbac/users/local/app_user \
    -u Administrator:password \
    -d name="Application User" \
    -d password=password123 \
    -d roles=bucket_full_access[my-bucket]

3.2 查看用户 #

命令行查看:

bash
/opt/couchbase/bin/couchbase-cli user-manage \
    --cluster localhost:8091 \
    --username Administrator \
    --password your-password \
    --list

REST API查看:

bash
curl -X GET http://localhost:8091/settings/rbac/users \
    -u Administrator:password

3.3 修改用户 #

bash
/opt/couchbase/bin/couchbase-cli user-manage \
    --cluster localhost:8091 \
    --username Administrator \
    --password your-password \
    --set \
    --rbac-username app_user \
    --rbac-name "Application User Updated" \
    --roles bucket_full_access[my-bucket],query_select[my-bucket] \
    --auth-domain local

3.4 修改密码 #

bash
/opt/couchbase/bin/couchbase-cli user-manage \
    --cluster localhost:8091 \
    --username Administrator \
    --password your-password \
    --set \
    --rbac-username app_user \
    --rbac-password newpassword123 \
    --auth-domain local

3.5 删除用户 #

bash
/opt/couchbase/bin/couchbase-cli user-manage \
    --cluster localhost:8091 \
    --username Administrator \
    --password your-password \
    --delete \
    --rbac-username app_user \
    --auth-domain local

四、角色分配 #

4.1 分配单个角色 #

bash
/opt/couchbase/bin/couchbase-cli user-manage \
    --cluster localhost:8091 \
    --username Administrator \
    --password your-password \
    --set \
    --rbac-username reader_user \
    --rbac-password password123 \
    --roles data_reader[my-bucket] \
    --auth-domain local

4.2 分配多个角色 #

bash
/opt/couchbase/bin/couchbase-cli user-manage \
    --cluster localhost:8091 \
    --username Administrator \
    --password your-password \
    --set \
    --rbac-username app_user \
    --rbac-password password123 \
    --roles "data_reader[my-bucket],data_writer[my-bucket],query_select[my-bucket],query_insert[my-bucket],query_update[my-bucket],query_delete[my-bucket]" \
    --auth-domain local

4.3 Scope级别权限 #

bash
/opt/couchbase/bin/couchbase-cli user-manage \
    --cluster localhost:8091 \
    --username Administrator \
    --password your-password \
    --set \
    --rbac-username scope_user \
    --rbac-password password123 \
    --roles scope_admin[my-bucket:my-scope] \
    --auth-domain local

4.4 Collection级别权限 #

bash
/opt/couchbase/bin/couchbase-cli user-manage \
    --cluster localhost:8091 \
    --username Administrator \
    --password your-password \
    --set \
    --rbac-username collection_user \
    --rbac-password password123 \
    --roles collection_admin[my-bucket:my-scope:my-collection] \
    --auth-domain local

五、LDAP集成 #

5.1 配置LDAP #

bash
/opt/couchbase/bin/couchbase-cli setting-ldap \
    --cluster localhost:8091 \
    --username Administrator \
    --password your-password \
    --enabled 1 \
    --servers ldap://ldap.example.com \
    --authentication-enabled 1 \
    --ldap-user-uid-attribute sAMAccountName \
    --ldap-group-attribute memberOf \
    --ldap-query-ou "ou=users,dc=example,dc=com"

5.2 LDAP角色映射 #

bash
/opt/couchbase/bin/couchbase-cli setting-ldap \
    --cluster localhost:8091 \
    --username Administrator \
    --password your-password \
    --enabled 1 \
    --servers ldap://ldap.example.com \
    --authentication-enabled 1 \
    --authorization-enabled 1 \
    --ldap-group-query "(&(objectClass=group)(member=%D))"

5.3 测试LDAP连接 #

bash
curl -X POST http://localhost:8091/settings/saslauthdAuth \
    -u Administrator:password \
    -d username=ldap_user \
    -d password=ldap_password

六、安全配置 #

6.1 启用TLS #

bash
/opt/couchbase/bin/couchbase-cli ssl-manage \
    --cluster localhost:8091 \
    --username Administrator \
    --password your-password \
    --set-cluster-certificate \
    --certificate-file /path/to/certificate.pem

6.2 强制加密 #

bash
/opt/couchbase/bin/couchbase-cli setting-security \
    --cluster localhost:8091 \
    --username Administrator \
    --password your-password \
    --set \
    --disable-http-ui 1 \
    --cluster-encryption-level all

6.3 审计日志 #

bash
/opt/couchbase/bin/couchbase-cli setting-audit \
    --cluster localhost:8091 \
    --username Administrator \
    --password your-password \
    --set \
    --enabled 1 \
    --log-path /var/lib/couchbase/logs/audit.log \
    --rotate-interval 86400

七、最佳实践 #

7.1 最小权限原则 #

text
原则:
- 只授予必要的权限
- 避免使用admin角色
- 定期审查权限

7.2 用户分类 #

text
应用用户:
- bucket_full_access[app-bucket]
- query_*[app-bucket]

只读用户:
- data_reader[app-bucket]
- query_select[app-bucket]

管理员:
- bucket_admin[app-bucket]
- cluster_admin(仅集群管理员)

7.3 密码策略 #

text
建议:
- 密码长度 >= 12位
- 包含大小写字母、数字、特殊字符
- 定期更换密码
- 使用密码管理器

7.4 审计与监控 #

bash
curl -X GET http://localhost:8091/settings/audit \
    -u Administrator:password

八、常见问题 #

8.1 认证失败 #

text
排查:
1. 检查用户名密码
2. 检查用户状态
3. 检查认证域
4. 查看日志

8.2 权限不足 #

sql
SELECT * FROM system:user_info
WHERE name = 'app_user';

8.3 LDAP连接问题 #

bash
/opt/couchbase/bin/couchbase-cli setting-ldap \
    --cluster localhost:8091 \
    --username Administrator \
    --password your-password \
    --get

九、总结 #

用户权限管理要点:

功能 说明
用户管理 创建、修改、删除用户
角色分配 授予适当的权限
LDAP集成 企业认证集成
安全配置 TLS、审计日志

最佳实践:

  1. 遵循最小权限原则
  2. 定期审查用户权限
  3. 启用审计日志
  4. 使用强密码
  5. 配置TLS加密

下一步,让我们学习备份与恢复!

最后更新:2026-03-27