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

Authorization (subgraph access control) in Neo4j with python driver

我有一些员工数据,其中有 3 个不同的角色。假设 CEOManagerDeveloper

CEO 可以访问整个图,经理只能访问部分人(他们的团队)的数据,开发人员不能访问员工数据。

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

企业版neo4j有built-inprocedures for managing users and roles that you access using Cypher queries. So, you just need to know how to perform Cypher queries in Python. You should also be aware that in a neo4j cluster, user and role assignments are not propagated automatically.

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

Managing subgraph access control需要修改neo4j配置文件。这不是您可以通过编程方式完成的事情。

目前无法使用 Python 为自定义角色编写程序来实现子图访问控制。仅在 Java.

中才有可能

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