细粒度访问控制(Fine-Grained Access Control,FGAC)是指在信息系统或应用中,根据用户身份、角色、上下文环境以及资源的具体属性,对“谁能在什么条件下对哪些数据的哪一部分进行什么操作”进行非常精细、灵活的控制,而不仅仅是“有/无权限”的粗粒度判断。
| 维度 | 粗粒度访问控制 | 细粒度访问控制 |
|---|---|---|
| 控制对象 | 整个系统、模块、功能菜单 | 具体数据行、字段、记录 |
| 示例 | “能否访问报表系统” | “能否查看某客户表中金额 > 100 万的记录” |
| 典型模型 | RBAC(角色权限) | ABAC / PBAC(属性/策略权限) |
| 灵活度 | 低 | 高 |
细粒度通常体现在以下几个方面:
若 用户.部门 = 资源.部门 且 用户.角色 = “经理” 且 时间 ∈ 工作时间
则 允许 读取 资源.金额字段
-- 只返回当前用户所在部门的订单
SELECT *
FROM orders
WHERE department_id = :current_user_department;
或使用视图:
CREATE VIEW user_orders AS
SELECT * FROM orders
WHERE owner_id = CURRENT_USER;
细粒度访问控制 = 在“正确的时间、正确的环境、正确的条件下,对正确数据的最小集合授予最小必要权限”。
如果你愿意,我也可以结合**具体系统(如数据库 / API / 前端 / Kubernetes)**给你讲实现方案。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。