Write or token create operations are not allowed i

2019-07-22 20:59发布

When calling a procedure using an evaluated inner query (cypher projection)which would be creating an node or edge a forbidden error is thrown for the admin user. It is possible to run the query outside the procedure.

Maybe it is something of an configuration issue?

I am trying to run a query using the timetree procedure of GraphAware and the LabelPropagation of Neo4j. But I've been able to get the forbidden error using a much simpler query. I am using Neo4j Desktop. I have tried giving the admin all the possible roles.

For example

call apoc.cypher.run("create (n:Test) return n",{}) yield value return *

Or another example:

CALL algo.labelPropagation.stream(
    'CALL ga.timetree.events.range({start: 1480896000000, end: 1520294400000}) YIELD node RETURN id(node) AS id',
    'MATCH (c1:Case)-[r:NARROWER_THAN]->(c2:Case) RETURN id(c1) AS source, id(c2) as target, r.score AS weight', 
    { graph:'cypher'}
)YIELD nodeId, label
with label as lpa, collect(nodeId) as ids, count(nodeId) as c  
where c > 2
return lpa, c, ids  
order by c desc

These are the errors for the first and second example:

Neo.ClientError.Security.Forbidden: Token create operations are not allowed for user 'neo4j' with roles [admin,architect,editor,publisher,reader] restricted to READ.

Neo.ClientError.Security.Forbidden: Write operations are not allowed for user 'neo4j' with roles [admin,architect,editor,publisher,reader] restricted to READ.

1条回答
祖国的老花朵
2楼-- · 2019-07-22 21:45

The procedure apoc.cypher.run can only execute read queries. Creating/updating/deleting nodes is not allowed with it.

查看更多
登录 后发表回答