使用python驱动程序在Neo4j中授权(子图访问控制)

时间:2017-01-25 11:25:42

标签: python neo4j authorization graph-databases py2neo

我有一些员工数据,其中有3个不同的角色。让我们说 CEO 经理开发人员

首席执行官可以访问整个图表,管理人员只能访问某些人(他们的团队)的数据,而开发人员无法访问员工数据。

我应该如何为用户角色分配子图访问权限并使用 Python 实现? 有很好的解决方案和全面的库和文档,但只有Java!

2 个答案:

答案 0 :(得分:1)

neo4j的企业版内置了procedures for managing users and roles,您可以使用Cypher查询进行访问。因此,您只需要知道如何在Python中执行Cypher查询。您还应该知道在neo4j集群中user and role assignments are not propagated automatically

有一组内置native roles with specific access privileges,但您也可以创建自己的自定义角色。您可能希望为场景创建自定义角色。

Managing subgraph access control需要修改neo4j配置文件。这不是你可以用编程方式做的事情。

答案 1 :(得分:1)

目前无法编写自定义角色的过程来使用Python实现子图访问控制。它只能在Java中使用。

解决方法可能是通过向节点添加属性以及存储这些节点和关系的安全级别的关系来使用phyton实现它。检查用户的安全级别,可以使用phyton可视化来检查属性,以仅显示与用户安全级别一致的节点和关系。