Text2SQL 指南

你们是怎么做权限控制和数据安全的

这一章讲治理边界:老板、内部投研、普通用户、外部报告 Agent 的可见范围不同,系统要在检索、语义计划、SQL 校验、执行和交付层都保证不越权。

OPENING30 秒开口版

我会把权限做成系统 Agent 的集中治理能力,而不是让每个下游 Agent 自己判断。运行前校验用户身份、workspace 和 datasource binding;检索时只召回授权范围内的 schema、语义资产和来源证据;validate 阶段做只读、表权限、字段权限、方言和 dry-run;execute 用只读账号和超时限制;delivery 也不能泄露权限过滤前的 evidence。任何解析不完整、权限不确定或危险 SQL 都 fail-closed。

理解与记忆 · 术语、解析、关联知识点
专业术语Workspace Binding:工作空间和数据源的授权绑定关系。
Table Permissions:按工作空间和数据源声明哪些表允许查询。
Fail-closed:不确定、解析失败或越权时默认拒绝执行。
Visibility Scope:RAG、语义资产、artifact 的可见范围。
为什么这样回答权限题面试官最怕听到泛泛 RBAC,先讲贯穿链路能体现你知道泄露可能发生在检索、生成、执行和交付各层。
小白解析就像公司里不同人能看不同文件夹,系统不应该先把所有文件拿出来再提醒模型别看,而是一开始就只给它看允许看的部分。
关联知识点text2sql 文档把治理主模型描述为 Workspace -> Datasource Binding -> Table Permissions,SQL 执行前做 fail-closed 授权检查,RAG selected context 也要记录 permission filtering。

1 MIN一分钟口语版

展开讲,权限不是一个后置 if 判断,而是贯穿链路。入口层先确定 actor、workspace、role、API key 和 report agent scope;governance 层维护 workspace datasource binding、table permissions、字段可见和 policyVersion;knowledge/RAG 层按 visibility scope 构建索引和 selected context;semantic-plan 只能看到授权后的表和指标;SQL validate 负责 AST、只读、多语句、危险函数、未授权表字段、dry-run 和成本;delivery 只暴露授权后的 answer、evidence 和 artifact。这样老板、投研、普通用户和外部报告 Agent 可以走同一套 Agent Bot,但看到的是不同的数据世界。

理解与记忆 · 术语、解析、关联知识点
专业术语Workspace Binding:工作空间和数据源的授权绑定关系。
Table Permissions:按工作空间和数据源声明哪些表允许查询。
Fail-closed:不确定、解析失败或越权时默认拒绝执行。
Visibility Scope:RAG、语义资产、artifact 的可见范围。
为什么这样回答权限题面试官最怕听到泛泛 RBAC,先讲贯穿链路能体现你知道泄露可能发生在检索、生成、执行和交付各层。
小白解析就像公司里不同人能看不同文件夹,系统不应该先把所有文件拿出来再提醒模型别看,而是一开始就只给它看允许看的部分。
关联知识点text2sql 文档把治理主模型描述为 Workspace -> Datasource Binding -> Table Permissions,SQL 执行前做 fail-closed 授权检查,RAG selected context 也要记录 permission filtering。

ARCHITECTURE架构设计要点

入口身份

actor、role、workspace、API key、report agent scope 先进入运行上下文。

检索可见

schema、glossary、source docs 和 semantic assets 只召回授权范围。

SQL 安全

只读、AST、禁多语句、禁 DDL/DML、表字段权限、dry-run。

执行隔离

只读账号、查询超时、最大行数、成本上限、结果脱敏。

交付脱敏

delivery.evidence 不能包含权限过滤前的片段或敏感字段。

审计回放

runId、policyVersion、permission decision 进入 trace 和审计。

DIAGRAM架构图

权限贯穿 Text2SQL 链路

你们是怎么做权限控制和数据安全的 Mermaid diagram 1

人类用户和报告 Agent 的权限隔离

你们是怎么做权限控制和数据安全的 Mermaid diagram 2

TABLE关键对象和面试讲法

对象职责面试强调
actor识别调用方身份真人和报告 Agent 权限不能混。
workspaceId确定组织边界避免跨团队数据泄露。
datasource binding限制可访问数据源未绑定直接拒绝。
table permissions限制可查询表RAG 和 SQL 都要应用。
field policy敏感字段可见、脱敏或拒绝未公开融资、API 收入等要保护。
policyVersion权限版本缓存和历史 run 要能审计。
audit log记录权限决策支撑安全排查和合规追责。

GOVERNANCE CASES容易被追问的治理场景

场景危险点回答口径
policyVersion 变更历史 run 和当前权限不一致。runId 回放保留当时 policyVersion 供审计;用户再次打开 artifact 时按当前权限重判,必要时只展示摘要。
data pack cache高权限结果被低权限 Agent 复用。cache key 必须包含 workspaceId、actorType、agentScope、policyVersion、semanticVersion、timeRange、filters。
审计写入失败高风险数据无痕执行。外部报告 Agent、敏感字段、跨 workspace、高价值数据 fail-closed;低风险读操作可补偿队列但 delivery 标记 audit degraded。
报告 Agent 推断攻击多轮查询拼出单个敏感实体。做 row threshold、aggregation threshold、差分查询检测、跨 run audit、agent scope 配额和 riskTags。
观测系统泄露LangSmith 或 trace 保存权限过滤前内容。只记录 evidence id、count、reasonCode、riskTags 和脱敏摘要,不记录 forbidden raw payload。

INTERVIEW MAP面试表达地图

  1. 先讲原则权限不是 prompt 约束,而是系统强制边界。
  2. 再讲层次入口、检索、计划、SQL、执行、交付都要控制。
  3. 落到对象workspace binding、table permissions、visibility scope、policyVersion。
  4. 强调下游报告 Agent 只能通过系统 Agent 拿 data pack。
  5. 收束安全不确定就 fail-closed,不能赌模型自觉。

SUBAGENTS面试官、候选人和红队

本章写作前已实际启动多 subagent:面试官 subagent 负责连续追问生产压力,候选人 subagent 负责把答案压成现场能讲出口的表达,资料审阅 + 红队 subagent 负责指出哪些地方容易写虚,并补充安全、评测、runId、下游报告 Agent 的攻击面。

本章追问重点:所有回答都要落到 RootData 类 Web3 主项目、Agent Bot、Text2SQL、RAG、runId/evidence/artifact/data pack 和下游报告 Agent 复用。

Q&A20 组高强度追问

面试官:权限是在 SQL 生成前、生成后,还是执行前校验?

我:三处都要有。生成前限制检索和语义上下文,生成后 validate 检查 SQL 是否访问未授权表字段,执行前再次用 policyVersion 做 fail-closed。只在执行前拦会让模型看到不该看的 schema 和 evidence。

理解与记忆 · 背后工程点

背后工程点:权限要左移到检索和上下文层,同时在执行前强制兜底。
专业术语:Workspace Binding:工作空间和数据源的授权绑定关系。
Table Permissions:按工作空间和数据源声明哪些表允许查询。
Fail-closed:不确定、解析失败或越权时默认拒绝执行。
为什么这样回答:权限题面试官最怕听到泛泛 RBAC,先讲贯穿链路能体现你知道泄露可能发生在检索、生成、执行和交付各层。
小白解析:就像公司里不同人能看不同文件夹,系统不应该先把所有文件拿出来再提醒模型别看,而是一开始就只给它看允许看的部分。
关联知识点:text2sql 文档把治理主模型描述为 Workspace -> Datasource Binding -> Table Permissions,SQL 执行前做 fail-closed 授权检查,RAG selected context 也要记录 permission filtering。

面试官:workspace 没绑定 datasource 时,链路返回什么?

我:直接拒绝进入查询路径,返回权限不足或数据源不可用,并在 trace 里记录 governance rejection。不能降级成“试着查一下”,因为没有 binding 就没有合法数据边界。

理解与记忆 · 背后工程点

背后工程点:Datasource binding 是最外层资源授权。
专业术语:Workspace Binding:工作空间和数据源的授权绑定关系。
Table Permissions:按工作空间和数据源声明哪些表允许查询。
Fail-closed:不确定、解析失败或越权时默认拒绝执行。
为什么这样回答:权限题面试官最怕听到泛泛 RBAC,先讲贯穿链路能体现你知道泄露可能发生在检索、生成、执行和交付各层。
小白解析:就像公司里不同人能看不同文件夹,系统不应该先把所有文件拿出来再提醒模型别看,而是一开始就只给它看允许看的部分。
关联知识点:text2sql 文档把治理主模型描述为 Workspace -> Datasource Binding -> Table Permissions,SQL 执行前做 fail-closed 授权检查,RAG selected context 也要记录 permission filtering。

面试官:table permissions 怎么限制 RAG schema 检索?

我:RAG 的 schema chunks、semantic terms 和 examples 都带 visibility scope。retrieve 和 assemble-context 会先按权限过滤,只把允许表列进入 selected context。这样 generate-sql 看不到未授权表,自然更少生成越权 SQL。

理解与记忆 · 背后工程点

背后工程点:RAG 层也要权限过滤,不只是执行层。
专业术语:Workspace Binding:工作空间和数据源的授权绑定关系。
Table Permissions:按工作空间和数据源声明哪些表允许查询。
Fail-closed:不确定、解析失败或越权时默认拒绝执行。
为什么这样回答:权限题面试官最怕听到泛泛 RBAC,先讲贯穿链路能体现你知道泄露可能发生在检索、生成、执行和交付各层。
小白解析:就像公司里不同人能看不同文件夹,系统不应该先把所有文件拿出来再提醒模型别看,而是一开始就只给它看允许看的部分。
关联知识点:text2sql 文档把治理主模型描述为 Workspace -> Datasource Binding -> Table Permissions,SQL 执行前做 fail-closed 授权检查,RAG selected context 也要记录 permission filtering。

面试官:如果 SQL 解析不完整,为什么 fail-closed?

我:解析不完整就无法确认访问了哪些表和字段。继续执行等于绕过权限判断,所以必须 ACL_PARSE_REJECTED,要求重新生成或返回拒绝原因。

理解与记忆 · 背后工程点

背后工程点:安全校验无法证明安全时,默认不安全。
专业术语:Workspace Binding:工作空间和数据源的授权绑定关系。
Table Permissions:按工作空间和数据源声明哪些表允许查询。
Fail-closed:不确定、解析失败或越权时默认拒绝执行。
为什么这样回答:权限题面试官最怕听到泛泛 RBAC,先讲贯穿链路能体现你知道泄露可能发生在检索、生成、执行和交付各层。
小白解析:就像公司里不同人能看不同文件夹,系统不应该先把所有文件拿出来再提醒模型别看,而是一开始就只给它看允许看的部分。
关联知识点:text2sql 文档把治理主模型描述为 Workspace -> Datasource Binding -> Table Permissions,SQL 执行前做 fail-closed 授权检查,RAG selected context 也要记录 permission filtering。

面试官:下游报告 Agent 的 scope 怎么和真人用户隔离?

我:报告 Agent 使用独立 API key 和 agent scope,可以绑定某个 workspace、数据集、字段范围和调用配额。它不能继承某个管理员的全部权限,也不能直连数据库。

相似题已合并 · 建议跳转

系统 Agent 与报告 Agent 边界:主讲系统 Agent 为什么统一出 data pack,其他题只补权限、性能或踩坑角度。

理解与记忆 · 背后工程点

背后工程点:Agent-to-agent 调用也需要独立身份和最小权限。
专业术语:Workspace Binding:工作空间和数据源的授权绑定关系。
Table Permissions:按工作空间和数据源声明哪些表允许查询。
Fail-closed:不确定、解析失败或越权时默认拒绝执行。
为什么这样回答:权限题面试官最怕听到泛泛 RBAC,先讲贯穿链路能体现你知道泄露可能发生在检索、生成、执行和交付各层。
小白解析:就像公司里不同人能看不同文件夹,系统不应该先把所有文件拿出来再提醒模型别看,而是一开始就只给它看允许看的部分。
关联知识点:text2sql 文档把治理主模型描述为 Workspace -> Datasource Binding -> Table Permissions,SQL 执行前做 fail-closed 授权检查,RAG selected context 也要记录 permission filtering。

面试官:字段级敏感信息怎么处理?

我:字段策略会在 selected context、SQL validate、结果交付三处生效。未公开融资、内部评分、API 收入这类字段可以拒绝、脱敏或只返回聚合结果,delivery artifact 也不能包含明细。

理解与记忆 · 背后工程点

背后工程点:敏感字段不只在 UI 脱敏,SQL 和 artifact 也要治理。
专业术语:Workspace Binding:工作空间和数据源的授权绑定关系。
Table Permissions:按工作空间和数据源声明哪些表允许查询。
Fail-closed:不确定、解析失败或越权时默认拒绝执行。
为什么这样回答:权限题面试官最怕听到泛泛 RBAC,先讲贯穿链路能体现你知道泄露可能发生在检索、生成、执行和交付各层。
小白解析:就像公司里不同人能看不同文件夹,系统不应该先把所有文件拿出来再提醒模型别看,而是一开始就只给它看允许看的部分。
关联知识点:text2sql 文档把治理主模型描述为 Workspace -> Datasource Binding -> Table Permissions,SQL 执行前做 fail-closed 授权检查,RAG selected context 也要记录 permission filtering。

面试官:审计日志写入失败,继续执行还是拒绝?

我:高风险数据或外部报告 Agent 场景我会 fail-closed,因为无法审计就无法追责。低风险读操作可以进入补偿队列,但 delivery 必须标记 audit degraded,具体取决于数据等级。

理解与记忆 · 背后工程点

背后工程点:审计策略要按风险分级,但高风险不能无痕执行。
专业术语:Workspace Binding:工作空间和数据源的授权绑定关系。
Table Permissions:按工作空间和数据源声明哪些表允许查询。
Fail-closed:不确定、解析失败或越权时默认拒绝执行。
为什么这样回答:权限题面试官最怕听到泛泛 RBAC,先讲贯穿链路能体现你知道泄露可能发生在检索、生成、执行和交付各层。
小白解析:就像公司里不同人能看不同文件夹,系统不应该先把所有文件拿出来再提醒模型别看,而是一开始就只给它看允许看的部分。
关联知识点:text2sql 文档把治理主模型描述为 Workspace -> Datasource Binding -> Table Permissions,SQL 执行前做 fail-closed 授权检查,RAG selected context 也要记录 permission filtering。

面试官:如何防止报告 Agent 多次问答拼出敏感数据?

我:要做配额、聚合阈值、明细行数限制、差分查询检测和审计关联。比如同一 Agent 反复用过滤条件逼近某个未公开项目明细,就触发 riskTags 或拒绝。

理解与记忆 · 背后工程点

背后工程点:防止推断泄露需要跨请求审计,不是单条 SQL 能解决。
专业术语:Workspace Binding:工作空间和数据源的授权绑定关系。
Table Permissions:按工作空间和数据源声明哪些表允许查询。
Fail-closed:不确定、解析失败或越权时默认拒绝执行。
为什么这样回答:权限题面试官最怕听到泛泛 RBAC,先讲贯穿链路能体现你知道泄露可能发生在检索、生成、执行和交付各层。
小白解析:就像公司里不同人能看不同文件夹,系统不应该先把所有文件拿出来再提醒模型别看,而是一开始就只给它看允许看的部分。
关联知识点:text2sql 文档把治理主模型描述为 Workspace -> Datasource Binding -> Table Permissions,SQL 执行前做 fail-closed 授权检查,RAG selected context 也要记录 permission filtering。

面试官:权限过滤前的 evidence 能不能进 LangSmith?

我:不能记录原文。trace 或 LangSmith 可以记录 counts、ids、reason codes 和过滤摘要,但不能把 forbidden content 写进外部观测系统。

理解与记忆 · 背后工程点

背后工程点:可观测也要遵守权限边界。
专业术语:Workspace Binding:工作空间和数据源的授权绑定关系。
Table Permissions:按工作空间和数据源声明哪些表允许查询。
Fail-closed:不确定、解析失败或越权时默认拒绝执行。
为什么这样回答:权限题面试官最怕听到泛泛 RBAC,先讲贯穿链路能体现你知道泄露可能发生在检索、生成、执行和交付各层。
小白解析:就像公司里不同人能看不同文件夹,系统不应该先把所有文件拿出来再提醒模型别看,而是一开始就只给它看允许看的部分。
关联知识点:text2sql 文档把治理主模型描述为 Workspace -> Datasource Binding -> Table Permissions,SQL 执行前做 fail-closed 授权检查,RAG selected context 也要记录 permission filtering。

面试官:普通用户问某基金所有内部跟踪项目,系统怎么拒绝?

我:intake 能识别为敏感内部数据请求,governance 判断没有 scope,answer 返回权限不足和可申请渠道。不会召回内部 tracking schema,也不会生成 SQL。

理解与记忆 · 背后工程点

背后工程点:拒绝也要在早期节点完成,避免泄露可用表名。
专业术语:Workspace Binding:工作空间和数据源的授权绑定关系。
Table Permissions:按工作空间和数据源声明哪些表允许查询。
Fail-closed:不确定、解析失败或越权时默认拒绝执行。
为什么这样回答:权限题面试官最怕听到泛泛 RBAC,先讲贯穿链路能体现你知道泄露可能发生在检索、生成、执行和交付各层。
小白解析:就像公司里不同人能看不同文件夹,系统不应该先把所有文件拿出来再提醒模型别看,而是一开始就只给它看允许看的部分。
关联知识点:text2sql 文档把治理主模型描述为 Workspace -> Datasource Binding -> Table Permissions,SQL 执行前做 fail-closed 授权检查,RAG selected context 也要记录 permission filtering。

面试官:权限变更后,历史 runId 和历史报告还能看吗?

我:要区分历史审计和当前可见。内部审计可以按当时 policyVersion 回放;普通用户再次打开时要按当前权限决定是否展示 artifact,必要时只显示摘要或提示权限已变化。

理解与记忆 · 背后工程点

背后工程点:历史可回放不等于永久可见。
专业术语:Workspace Binding:工作空间和数据源的授权绑定关系。
Table Permissions:按工作空间和数据源声明哪些表允许查询。
Fail-closed:不确定、解析失败或越权时默认拒绝执行。
为什么这样回答:权限题面试官最怕听到泛泛 RBAC,先讲贯穿链路能体现你知道泄露可能发生在检索、生成、执行和交付各层。
小白解析:就像公司里不同人能看不同文件夹,系统不应该先把所有文件拿出来再提醒模型别看,而是一开始就只给它看允许看的部分。
关联知识点:text2sql 文档把治理主模型描述为 Workspace -> Datasource Binding -> Table Permissions,SQL 执行前做 fail-closed 授权检查,RAG selected context 也要记录 permission filtering。

面试官:缓存会不会绕过权限?

我:缓存 key 必须包含 workspaceId、scope、policyVersion、semanticVersion 和数据版本。权限变更时使相关缓存失效,delivery 前还要二次校验,不能只靠 cache hit 返回。

理解与记忆 · 背后工程点

背后工程点:缓存必须权限感知。
专业术语:Workspace Binding:工作空间和数据源的授权绑定关系。
Table Permissions:按工作空间和数据源声明哪些表允许查询。
Fail-closed:不确定、解析失败或越权时默认拒绝执行。
为什么这样回答:权限题面试官最怕听到泛泛 RBAC,先讲贯穿链路能体现你知道泄露可能发生在检索、生成、执行和交付各层。
小白解析:就像公司里不同人能看不同文件夹,系统不应该先把所有文件拿出来再提醒模型别看,而是一开始就只给它看允许看的部分。
关联知识点:text2sql 文档把治理主模型描述为 Workspace -> Datasource Binding -> Table Permissions,SQL 执行前做 fail-closed 授权检查,RAG selected context 也要记录 permission filtering。

面试官:模型生成 SELECT * 怎么办?

我:validate 会拒绝或改写为允许列集合,尤其有字段权限时不能执行 SELECT *。对于明细查询还要强制 limit 和脱敏策略。

相似题已合并 · 建议跳转

SELECT * 的权限与安全处理:安全章主讲 SELECT * 的结构化拦截,权限章从字段可见性补充。

理解与记忆 · 背后工程点

背后工程点:字段级权限要求列级展开。
专业术语:Workspace Binding:工作空间和数据源的授权绑定关系。
Table Permissions:按工作空间和数据源声明哪些表允许查询。
Fail-closed:不确定、解析失败或越权时默认拒绝执行。
为什么这样回答:权限题面试官最怕听到泛泛 RBAC,先讲贯穿链路能体现你知道泄露可能发生在检索、生成、执行和交付各层。
小白解析:就像公司里不同人能看不同文件夹,系统不应该先把所有文件拿出来再提醒模型别看,而是一开始就只给它看允许看的部分。
关联知识点:text2sql 文档把治理主模型描述为 Workspace -> Datasource Binding -> Table Permissions,SQL 执行前做 fail-closed 授权检查,RAG selected context 也要记录 permission filtering。

面试官:行级权限怎么落地?

我:简单单表可以用 RowFilterRewriteService 注入租户或组织条件。复杂 UNION、INTERSECT、多表合并如果无法安全改写,就拒绝执行,而不是冒险放行。

理解与记忆 · 背后工程点

背后工程点:行过滤不能安全改写时也要 fail-closed。
专业术语:Workspace Binding:工作空间和数据源的授权绑定关系。
Table Permissions:按工作空间和数据源声明哪些表允许查询。
Fail-closed:不确定、解析失败或越权时默认拒绝执行。
为什么这样回答:权限题面试官最怕听到泛泛 RBAC,先讲贯穿链路能体现你知道泄露可能发生在检索、生成、执行和交付各层。
小白解析:就像公司里不同人能看不同文件夹,系统不应该先把所有文件拿出来再提醒模型别看,而是一开始就只给它看允许看的部分。
关联知识点:text2sql 文档把治理主模型描述为 Workspace -> Datasource Binding -> Table Permissions,SQL 执行前做 fail-closed 授权检查,RAG selected context 也要记录 permission filtering。

面试官:老板是不是默认能看所有数据?

我:不应该默认。老板有更高 role 或 workspace admin scope,但仍然受数据等级和审计约束。特别是外部数据授权、未公开融资、用户隐私类字段,仍要按策略处理。

理解与记忆 · 背后工程点

背后工程点:高权限不是无边界。
专业术语:Workspace Binding:工作空间和数据源的授权绑定关系。
Table Permissions:按工作空间和数据源声明哪些表允许查询。
Fail-closed:不确定、解析失败或越权时默认拒绝执行。
为什么这样回答:权限题面试官最怕听到泛泛 RBAC,先讲贯穿链路能体现你知道泄露可能发生在检索、生成、执行和交付各层。
小白解析:就像公司里不同人能看不同文件夹,系统不应该先把所有文件拿出来再提醒模型别看,而是一开始就只给它看允许看的部分。
关联知识点:text2sql 文档把治理主模型描述为 Workspace -> Datasource Binding -> Table Permissions,SQL 执行前做 fail-closed 授权检查,RAG selected context 也要记录 permission filtering。

面试官:权限不足时怎么保证用户体验?

我:answer 阶段给明确可操作解释:当前 workspace 没有数据源权限、字段不可见或需要管理员授权。不会暴露具体敏感字段值,但可以说明申请路径。

理解与记忆 · 背后工程点

背后工程点:安全拒绝要可理解,但不能泄露细节。
专业术语:Workspace Binding:工作空间和数据源的授权绑定关系。
Table Permissions:按工作空间和数据源声明哪些表允许查询。
Fail-closed:不确定、解析失败或越权时默认拒绝执行。
为什么这样回答:权限题面试官最怕听到泛泛 RBAC,先讲贯穿链路能体现你知道泄露可能发生在检索、生成、执行和交付各层。
小白解析:就像公司里不同人能看不同文件夹,系统不应该先把所有文件拿出来再提醒模型别看,而是一开始就只给它看允许看的部分。
关联知识点:text2sql 文档把治理主模型描述为 Workspace -> Datasource Binding -> Table Permissions,SQL 执行前做 fail-closed 授权检查,RAG selected context 也要记录 permission filtering。

面试官:Prompt 能不能告诉模型别查敏感表就够了?

我:不够。Prompt 是软约束,安全必须由系统强制执行。模型可能出错、被注入或上下文污染,所以最终要靠 AST、权限表、只读账号和执行网关。

理解与记忆 · 背后工程点

背后工程点:权限不能外包给模型。
专业术语:Workspace Binding:工作空间和数据源的授权绑定关系。
Table Permissions:按工作空间和数据源声明哪些表允许查询。
Fail-closed:不确定、解析失败或越权时默认拒绝执行。
为什么这样回答:权限题面试官最怕听到泛泛 RBAC,先讲贯穿链路能体现你知道泄露可能发生在检索、生成、执行和交付各层。
小白解析:就像公司里不同人能看不同文件夹,系统不应该先把所有文件拿出来再提醒模型别看,而是一开始就只给它看允许看的部分。
关联知识点:text2sql 文档把治理主模型描述为 Workspace -> Datasource Binding -> Table Permissions,SQL 执行前做 fail-closed 授权检查,RAG selected context 也要记录 permission filtering。

面试官:报告 Agent 生成公开报告,如何防止带出内部字段?

我:buildReportDataPack 会按 public scope 重新生成或过滤 data pack,不允许直接复用内部 run 的 artifact。公开报告需要单独的可发布证据合同。

理解与记忆 · 背后工程点

背后工程点:内部分析和公开发布是两个权限边界。
专业术语:Workspace Binding:工作空间和数据源的授权绑定关系。
Table Permissions:按工作空间和数据源声明哪些表允许查询。
Fail-closed:不确定、解析失败或越权时默认拒绝执行。
为什么这样回答:权限题面试官最怕听到泛泛 RBAC,先讲贯穿链路能体现你知道泄露可能发生在检索、生成、执行和交付各层。
小白解析:就像公司里不同人能看不同文件夹,系统不应该先把所有文件拿出来再提醒模型别看,而是一开始就只给它看允许看的部分。
关联知识点:text2sql 文档把治理主模型描述为 Workspace -> Datasource Binding -> Table Permissions,SQL 执行前做 fail-closed 授权检查,RAG selected context 也要记录 permission filtering。

面试官:你怎么评测权限系统?

我:构建安全回归集,包含未授权表、敏感字段、跨 workspace、复杂 SQL、Prompt Injection、报告 Agent 批量调用等样本。指标看拒绝准确率、误杀率、审计完整率和零越权。

理解与记忆 · 背后工程点

背后工程点:权限也要有评测集和门禁。
专业术语:Workspace Binding:工作空间和数据源的授权绑定关系。
Table Permissions:按工作空间和数据源声明哪些表允许查询。
Fail-closed:不确定、解析失败或越权时默认拒绝执行。
为什么这样回答:权限题面试官最怕听到泛泛 RBAC,先讲贯穿链路能体现你知道泄露可能发生在检索、生成、执行和交付各层。
小白解析:就像公司里不同人能看不同文件夹,系统不应该先把所有文件拿出来再提醒模型别看,而是一开始就只给它看允许看的部分。
关联知识点:text2sql 文档把治理主模型描述为 Workspace -> Datasource Binding -> Table Permissions,SQL 执行前做 fail-closed 授权检查,RAG selected context 也要记录 permission filtering。

面试官:一句话总结权限设计。

我:我的原则是模型看到的、SQL 能查的、结果能交付的、报告 Agent 能复用的,都必须是同一个授权后的世界。

理解与记忆 · 背后工程点

背后工程点:权限设计要贯穿端到端。
专业术语:Workspace Binding:工作空间和数据源的授权绑定关系。
Table Permissions:按工作空间和数据源声明哪些表允许查询。
Fail-closed:不确定、解析失败或越权时默认拒绝执行。
为什么这样回答:权限题面试官最怕听到泛泛 RBAC,先讲贯穿链路能体现你知道泄露可能发生在检索、生成、执行和交付各层。
小白解析:就像公司里不同人能看不同文件夹,系统不应该先把所有文件拿出来再提醒模型别看,而是一开始就只给它看允许看的部分。
关联知识点:text2sql 文档把治理主模型描述为 Workspace -> Datasource Binding -> Table Permissions,SQL 执行前做 fail-closed 授权检查,RAG selected context 也要记录 permission filtering。

PRINCIPLE本章背诵原则

  • 权限不是后置过滤,而是从检索到交付的贯穿约束。
  • 模型不能决定安全,系统网关决定安全。
  • 不确定、解析失败、权限缺失都 fail-closed。
  • 报告 Agent 也必须有独立身份、scope 和审计。
  • 缓存、trace、artifact 同样要权限感知。