人们在运行报告甚至只是从数据库中选择多条记录时是如何使用abac方法的?
例如,如果您的政策规定:
医生只能在他们的医院查看病人
显然,实现这一点的有效方法是在查询中包含一个过滤器 ( where hospital = XXX
),但这似乎与 ABAC 的原则相违背,因为它将规则烘焙到 SQL 本身中。
我知道Axiomatics提供了一种反向查询机制,它显然会根据规则为您生成过滤器——但我的系统有很多复杂的 sql,必须对其进行大量重构才能使用。
其他人是如何处理这个问题的?
人们在运行报告甚至只是从数据库中选择多条记录时是如何使用abac方法的?
例如,如果您的政策规定:
医生只能在他们的医院查看病人
显然,实现这一点的有效方法是在查询中包含一个过滤器 ( where hospital = XXX
),但这似乎与 ABAC 的原则相违背,因为它将规则烘焙到 SQL 本身中。
我知道Axiomatics提供了一种反向查询机制,它显然会根据规则为您生成过滤器——但我的系统有很多复杂的 sql,必须对其进行大量重构才能使用。
其他人是如何处理这个问题的?
基本上有三种方法可以解决这个问题:
"Can Alice view document #123?"
反向查询背后的想法是,您可以指定一个开放式问题,而不是指定一个完整的问题,例如"Which documents can Alice view?"
。