跳到主要内容

权限管理

问题

数据分析场景中如何做好权限管理?

答案

数据分级

级别说明示例访问要求
L1 公开可公开数据官网内容、公告无限制
L2 内部公司内部数据聚合报表、DAU员工可见
L3 敏感敏感业务数据营收明细、用户行为按需审批
L4 机密核心机密数据用户 PII、财务数据严格审批 + 脱敏

权限控制维度

行级安全(RLS)

行级安全控制不同用户只能看到自己权限范围内的数据行:

-- PostgreSQL 行级安全策略
-- 场景:区域销售经理只能看本区域数据
ALTER TABLE sales ENABLE ROW LEVEL SECURITY;

CREATE POLICY region_policy ON sales
FOR SELECT
USING (region = current_setting('app.current_region'));

-- 使用时设置当前用户区域
SET app.current_region = '华东';
SELECT * FROM sales; -- 只返回华东区域数据

BI 工具中的权限

BI 工具行级安全实现方式
Tableau用户过滤器
Power BIDAX RLS 表达式
Metabase沙箱模式
Superset行级安全过滤器
数据分析师的权限最佳实践
  1. 最小权限原则:只申请完成工作必需的数据权限
  2. 不下载明文 PII:在数据库中完成分析,而非导出到本地
  3. 定期审查权限:离职、转岗时及时回收
  4. 操作留痕:关键数据操作记录审计日志

常见面试问题

Q1: RBAC 和 ABAC 有什么区别?

答案

  • RBAC(基于角色):用户 → 角色 → 权限。如"数据分析师角色可访问 DWS 层"
  • ABAC(基于属性):根据用户属性、数据属性、环境属性动态决定。如"华东区的分析师在工作时间内可访问华东区数据"
  • 大多数组织使用 RBAC,复杂场景结合 ABAC

Q2: 如何防止数据被越权访问?

答案

  • 数据库层:RLS + 列级权限
  • BI 层:行级安全过滤器
  • 导出层:审批流程 + 脱敏
  • 审计层:SQL 审计日志,异常访问告警

相关链接