数据分析 Agent 如何保证数据安全
配图(无描述)
1️⃣ 考察意图
面试官想看你能否在"数据可用性"和"数据安全性"之间平衡。数据分析 Agent 直接访问企业核心数据,安全风险极高。
2️⃣ 标准答
数据安全分四层:访问控制 → 查询安全 → 结果脱敏 → 审计追溯:
- 访问控制:基于角色的数据权限(RBAC)。销售经理只能看自己区域的销售数据,CFO 可以看全公司财务。SQL 自动加权限过滤条件(
WHERE region = CURRENT_USER_REGION) - 查询安全:只允许 SELECT,禁止 DDL/DML。查询超时 30s,行数限制 10 万行。只读副本执行,不影响生产库。SQL 注入防护——用参数化查询而非字符串拼接
- 结果脱敏:PII 数据自动脱敏(手机号→
138****1234,身份证→110***********1234)。敏感字段(如薪资)按权限显示/隐藏 - 审计追溯:记录所有查询(用户/SQL/结果行数/时间),支持事后审计。异常查询告警(如一次性查询 10 万行)
3️⃣ 答题模板
"四层安全。访问控制:RBAC+SQL自动加权限过滤。查询安全:只SELECT+超时30s+行数限制10万+只读副本+参数化查询。结果脱敏:PII自动脱敏+敏感字段按权限。审计:全量查询日志+异常告警。"
4️⃣ 高频追问
追问:行级权限怎么实现?用户只能看自己区域的数据
两种方案:(1) SQL 重写——在生成的 SQL 外层包一层
SELECT * FROM ({original_sql}) WHERE region = '华东'。简单但可能影响性能(子查询);(2) 视图权限——为每个区域创建视图(v_sales_east/v_sales_west),用户只能访问自己区域的视图。更安全但维护成本高。实践:用 SQL 重写 + 只读账号权限双重保障
5️⃣ 避坑
- ❌ "Agent 用管理员账号查数据库就行" → ✅ "管理员权限太大,Agent 被注入后可能执行危险操作。用只读受限账号,只能 SELECT,且自动加行级权限过滤。"
6️⃣ 简历呼应
- 描述你实现的数据权限方案,给出权限粒度(表级/行级/列级)和审计能力
- "Database Security for AI Agents" (NIST, 2023)
—— 本场面试完 ——