用途:在 cognee 中管理用户、权限与多租户隔离。每个数据集有所有者,任何操作都按授权行校验:主体(用户、角色或租户)对数据集持有 read、write、delete、share 之一。默认开启访问控制,每个用户+数据集组合拥有独立的图与向量数据库。
主要能力:SDK 中不传 user= 时以默认用户运行,可用 create_user、get_user 创建或加载用户并传入 user=;remember、recall、search、forget、improve 及数据集辅助函数均接受 user=。共享数据集需调用方持有 share,用 dataset id 授权:authorized_give_permission_on_datasets 与 authorized_revoke_permission_on_datasets,权限取值 "read"|"write"|"delete"|"share";被授权者访问他人数据集必须按 UUID id 指定,名称只解析调用者自己的数据集。
租户与角色:create_tenant、select_tenant、add_user_to_tenant 管理租户,create_role、add_user_to_role 管理角色。用户在一个活动租户下操作,None 表示个人空间;数据集创建于当前活动租户。改租户后需 get_user(id) 重新加载用户对象。角色或租户成员继承其授权,但仅在成员活动租户等于数据集所属租户时可见。
HTTP 用法:POST /api/v1/auth/register、POST /api/v1/auth/login(表单字段 username、password)返回 access_token,使用 Authorization: Bearer <token>;API key 走 POST /api/v1/auth/api-keys,用 X-Api-Key 传递。权限路由在 /api/v1/permissions 下,含授权、撤销、查询主体数据集、租户与角色管理等端点。
限制与注意:被拒绝不等于空结果,无权读取的 id 抛 PermissionDeniedError(403),非本人数据集名抛 DatasetNotFoundError,写操作会静默创建同名新数据集。不传 datasets 时只搜索可读内容。授权要求授权者在数据集的活动租户内持有 share,且不校验被授权者的租户。关闭访问控制由 ENABLE_BACKEND_ACCESS_CONTROL 控制,关闭后仍走 ACL 检查但共享底层数据库,仅适合单用户部署。开启访问控制时图与向量后端必须提供数据集数据库处理器,否则报 OSError。用户管理是租户范围能力 manage_users,授予与撤销另有 grant_capabilities、revoke_capabilities 门槛。缺省 admin 角色名存在兼容性回退。更多细节见官方示例与 CLAUDE.md,生产级多租户方案资料称需联系 social@cognee.ai。