FastGPT文件级权限与成员可见范围:判断顺序与核对动作

Check all FastGPT v4.17.2 file permissions, member visibility, deletion rights and retrieval scope before publishing any shared knowledge base.

文件级权限最容易错在把知识库整体可见当成文件可见,成员一旦能进库就以为能读全部文件。正确判断顺序是先确认成员身份鉴权,再确认文件读权限,然后看检索是否按成员可读文件过滤,最后才处理删除动作,删除只归创建者。

成员身份鉴权是文件级权限的入口

文件级权限是商业版功能,先由知识库管理员开启;访问文件仍需知识库读权限,检索过滤在按当前成员身份鉴权时生效。FastGPT v4.17.2 官方文档把知识库成员与文件权限放在同一套判断里,成员进入知识库之前先要确认身份,身份决定后续能看到哪些文件。配置时先核对成员是否属于该知识库,再核对成员在库内的角色,角色不同会影响文件读权限的判定结果。很多团队只配置了知识库层面的可见范围,没有把成员身份与文件读权限对齐,结果成员能打开知识库却看不到预期文件。核对动作可以这样安排:用目标成员账号登录,进入知识库文件列表,观察列表是否只出现该成员可读的文件;再切换另一个成员账号,比较两次列表差异。失败表现通常是列表为空、文件条目缺失或提示无权限。身份鉴权没通过时,后续的文件读权限、检索过滤、删除判断都不会进入执行阶段,所以这一步必须最先确认。

文件读权限决定成员能看到哪些文件

文件读权限是文件级权限的核心。官方文档说明,成员对单个文件的读权限独立于知识库整体权限,成员拥有知识库访问权不代表拥有全部文件的读权限。配置时逐个文件确认读权限归属,把需要共享的文件开放给对应成员,把只供特定成员使用的文件收窄范围。核对动作是让成员在文件列表中定位目标文件,尝试打开并查看内容,再尝试用检索命中该文件内容。若文件读权限未开放,成员在列表中看不到该文件,检索也不会返回该文件的内容片段。常见失败表现是成员反馈知识库里有文件但自己看不到,或者检索结果里缺少某份文档。处理顺序是先确认成员身份鉴权通过,再回到文件读权限逐条核对。文件数量多时,按成员分组核对比按文件逐个核对更高效,先列出成员应读文件集合,再与列表实际显示做比对。

删除仅创建者,其他成员不能代为删除

删除动作的权限边界与读权限分开判断。官方文档明确删除仅创建者,也就是说文件由谁创建,删除动作就归谁执行,其他成员即使拥有该文件的读权限,也不能代为删除。配置时不需要为删除单独分配权限,创建者身份本身决定删除资格。核对动作是让非创建者成员尝试删除目标文件,观察操作是否被拒绝;再让创建者成员执行删除,确认可以完成。失败表现有两类:一类是非创建者看到删除入口但操作失败,另一类是创建者找不到删除入口,后者通常与成员身份鉴权或界面状态有关。团队协作中要提前约定文件创建者,避免出现创建者离职或账号停用后无人能删除的局面。若确实需要调整归属,应在成员身份层面处理,不能靠给其他成员开放读权限来绕过删除限制。

检索按成员可读文件过滤

检索环节同样受文件级权限约束。FastGPT v4.17.2 官方文档指出,检索按成员可读文件过滤,成员发起检索时,系统只在该成员拥有读权限的文件范围内召回内容。在上述开启状态与成员鉴权路径中,检索按当前成员可读文件集合过滤;预选知识库但未按成员身份鉴权的调用,仍按知识库权限召回。核对动作是让成员用同一句问题发起检索,比较返回片段是否只来自该成员可读文件;再让另一成员用同一句问题检索,比较两次结果差异。若检索结果里出现成员不可读文件的内容,说明文件读权限配置与检索过滤不一致,需要回到文件读权限逐条检查。常见失败表现是成员检索不到本该可见的文档,或者检索结果里混入了其他成员专属文件。排查顺序是先确认成员身份鉴权,再确认文件读权限,最后确认检索是否按成员可读文件过滤。

把四条机制串成核对清单

把成员身份鉴权、文件读权限、删除仅创建者、检索按成员可读文件过滤串成一条核对清单,可以覆盖文件级权限的主要场景。配置顺序建议这样安排:先确认成员身份鉴权,再逐文件确认读权限,然后验证检索过滤结果,最后确认删除动作归属创建者。核对动作可以固定为三步:用成员账号查看文件列表,用同一问题发起检索,用非创建者账号尝试删除。失败表现按机制归类,列表缺失对应读权限,检索缺失对应过滤,删除失败对应创建者限制。团队落地时把这份清单写进知识库维护流程,每次新增成员或新增文件后执行一次,能减少权限错配带来的反复排查。进一步阅读:https://fastgpt.cn/dataset/fastgpt-dataset-search-params

权限核对的实际顺序

核对权限时先确定成员身份,再确认文件集合,最后才看检索与问答的结果。成员身份决定他能进入哪些团队与知识库,文件集合决定他实际可读哪些材料,检索只在这个集合内返回候选。三步顺序颠倒,就会出现“能搜到但打不开”或“打开的是别人材料”的判断错误。

文件级权限按成员逐条可读的文件过滤,团队管理员不绕过这一层;团队所有者与系统 root 视为对全部文件拥有全部权限。把成员加入团队只是扩大了可见范围,不等于授予编辑或删除,删除仅创建者可执行。文件级权限只在按当前成员身份鉴权时生效:商业版开启文件级权限后,知识库读权限与成员身份同时满足才会过滤。分享链接与免登录窗口走各自的鉴权路径,若预选知识库且未按成员身份鉴权,文件级过滤不适用,需要单独核对该场景的权限设置。

验收时准备三类样本:只有本人可读的文件、同团队他人可读的文件、完全无关的文件。分别用三个身份检索同一个问题,记录返回的文件与原文片段,再与集合本身比对。若出现越界返回,先查文件集合与成员身份,再查检索配置,不要先改检索参数。

References

References