基于属性的访问控制与数据库

时间:2018-02-07 08:42:21

标签: database authorization access-control abac

我在一家软件公司工作,我正在寻找一种方法来验证数据库访问,如下所示:

  1. 个人数据存储在表格中的人需要阅读他的 个人排,他有权进入桌子。
  2. 检索到请求的行后,我需要进行外部检查 这确保了他有权阅读该特定行,并进行检查 某些表的字段包含在同一行中。
  3. 在我看来,基于属性的访问控制正是我正在寻找的,但我不确定。你能否确认它是否能够满足我的需求?

1 个答案:

答案 0 :(得分:0)

是的,ABAC(模型)可以做到这一点。但是,检查通常会在您访问数据之前发生 - 实际上更好(它可以避免检索数据)。

ABAC为您提供两件事:

  • 用于表达可以发生和不可发生的内容的政策语言。例如
  

用户可以查看他们拥有的记录,但不能查看信用卡字段

  • 请求/响应方案或如何实施政策。

在以数据为中心的访问控制的情况下,策略将转换为SQL过滤器。例如,你会来自:

  • SELECT * FROM transactions;

  • SELECT amount,owner,CASE WHEN(0 = 1)THED CREDITCARD ELSE'xxxx'FROM交易WHERE owner ='Alice'

这称为动态数据过滤和动态数据屏蔽。一些数据库供应商具有该功能,例如Oracle和VPD或MySQL和FGAC。最近的趋势是将此类行为外包给Informatica DDM或Axiomatics ADAF MD(我工作的地方)等工具。