我希望对包含在Neo4j数据库中的数据实施安全性,使其达到单个节点和/或关系的级别。保护Neo4j查询访问的数据
大部分数据将会提供给所有用户,但有些数据将受到用户角色的限制。我可以为要限制的数据添加属性或标签。
我想允许用户针对数据运行自定义密码查询,但隐藏用户未被授权查看的任何数据。
如果我必须从外面做一些事情,那么我不仅必须过滤返回的结果,还必须解析并限制或修改针对数据运行的所有查询,以防止用户编写查询哪些数据作用于他们不被允许查看。
理想的解决方案是,如果存在低级挂钩,它允许在密码查询作用于这些记录之前拦截读取节点和关系。拦截器将执行安全检查,如果它们失败,那么它的行为就好像该节点或关系根本不存在。即相同的密码查询根据谁运行它会有不同的结果。这将适用于所有可能的查询,例如计数(n)不仅仅是那些返回节点/关系的。
可以这样做吗?如果它不被支持,那么在代码中是否有合适的位置可以添加这样的安全过滤器,还是需要进行很多代码更改?
谢谢,达蒙
这肯定不是目前支持的Neo4j与Cypher支架,并且不太可能的东西可以添加平凡。您可能会实现自己的外观和查询API,而不是通过Cypher为用户提供直接访问。 –