In Neo4j 4.0 the concept of multi-database was introduced. There’s now a database called system which contains some internal information, e.g. configured permissions. Those can be exposed by APOC.


Do not rely on the data structures within system database. They are a non-public implementation details of Neo4j and might change within minor release updates.

Table 1. Procedures


returns a nodes and relationships stored in systemdb.


executes an DDL command or a list of DDL commands on system db, yields row for further processing

isType example
CALL apoc.systemdb.graph() YIELD nodes, relationships RETURN *;
CALL apoc.systemdb.execute('SHOW DATABASES') YIELD row RETURN as dbName;
CALL apoc.systemdb.execute(["CREATE USER foo", "GRANT ROLE myRole TO foo"])