【发布时间】:2012-10-23 05:00:33
【问题描述】:
在我的 Neo4J 数据库中,我想防止特定用户修改节点。我想允许任何用户成为“访客”并查看数据,而某些用户则成为管理员并查看和编辑尽可能多的数据。
这需要是 neo4j 服务器的一部分,我宁愿不在 neo4j 上实现 web 服务。
【问题讨论】:
在我的 Neo4J 数据库中,我想防止特定用户修改节点。我想允许任何用户成为“访客”并查看数据,而某些用户则成为管理员并查看和编辑尽可能多的数据。
这需要是 neo4j 服务器的一部分,我宁愿不在 neo4j 上实现 web 服务。
【问题讨论】:
您可以在只读模式下运行 Neo4j 服务器从属服务器,作为读/写主服务器的镜像。或者您可以实现节点级别的权限,就像在 RDBMS 中一样。
【讨论】:
您可以使用SecurityRule 执行您正在寻找的内容。对here 的作用有更好的描述。
基本上,这允许您在特定 URL 上设置 HTTP 授权。您可以做的是检查该 URL 以查看它尝试访问的节点,如果不允许用户对其进行变异,则拒绝该请求。
【讨论】:
SecurityRule 有一个链接到数据库的DEFAULT_DATABASE_PATH,但它无权访问 GraphDatabaseService。 //更新:我刚刚做了一个测试,看起来没有,您无权访问@Context,因此您可以访问实际的图形数据库。