写入权限
写入权限针对图的不同部分定义
-
CREATE- 允许创建节点和关系。 -
DELETE- 允许删除节点和关系。 -
SET LABEL- 允许使用SET子句设置指定的节点标签。 -
REMOVE LABEL- 允许使用REMOVE子句删除指定的节点标签。 -
SET PROPERTY- 允许在节点和关系上设置属性。
还有结合上述特定权限的复合权限
-
MERGE- 允许MATCH、CREATE和SET PROPERTY应用MERGE命令。 -
WRITE- 允许对整个图执行所有WRITE操作。 -
ALL GRAPH PRIVILEGES- 允许对整个图执行所有READ和WRITE操作。
有关如何阅读管理命令语法的更多详细信息,请参阅阅读管理命令语法和图权限命令的组成部分。
CREATE 权限
CREATE 权限允许用户在图上创建新的节点和关系元素。更多详细信息,请参阅Cypher 手册 → CREATE 子句。
GRANT [IMMUTABLE] CREATE
ON { HOME GRAPH | GRAPH[S] { * | name[, ...] } }
[
ELEMENT[S] { * | label-or-rel-type[, ...] }
| NODE[S] { * | label[, ...] }
| RELATIONSHIP[S] { * | rel-type[, ...] }
]
TO role[, ...]
例如,要授予角色 regularUsers 在图 neo4j 上 CREATE 元素的权限,请使用
GRANT CREATE ON GRAPH neo4j ELEMENTS * TO regularUsers
CREATE 权限也可以被拒绝
DENY [IMMUTABLE] CREATE
ON { HOME GRAPH | GRAPH[S] { * | name[, ...] } }
[
ELEMENT[S] { * | label-or-rel-type[, ...] }
| NODE[S] { * | label[, ...] }
| RELATIONSHIP[S] { * | rel-type[, ...] }
]
TO role[, ...]
例如,要拒绝角色 regularUsers 在所有图上 CREATE 带有标签 foo 的节点的权限,请使用
DENY CREATE ON GRAPH * NODES foo TO regularUsers
|
如果用户尝试创建带有数据库中尚不存在的标签的节点,则用户还必须拥有 |
|
如果数据库中不存在某个标签或关系类型,则用户无法使用相应的权限,直到它被创建。有关更多信息,请参阅不存在的标签、关系类型和属性名称的权限。 |
DELETE 权限
DELETE 权限允许用户删除图上的节点和关系元素。更多详细信息,请参阅Cypher 手册 → DELETE 子句。
GRANT [IMMUTABLE] DELETE
ON { HOME GRAPH | GRAPH[S] { * | name[, ...] } }
[
ELEMENT[S] { * | label-or-rel-type[, ...] }
| NODE[S] { * | label[, ...] }
| RELATIONSHIP[S] { * | rel-type[, ...] }
]
TO role[, ...]
例如,要授予角色 regularUsers 在图 neo4j 上 DELETE 元素的权限,请使用
GRANT DELETE ON GRAPH neo4j ELEMENTS * TO regularUsers
DELETE 权限也可以被拒绝
DENY [IMMUTABLE] DELETE
ON { HOME GRAPH | GRAPH[S] { * | name[, ...] } }
[
ELEMENT[S] { * | label-or-rel-type[, ...] }
| NODE[S] { * | label[, ...] }
| RELATIONSHIP[S] { * | rel-type[, ...] }
]
TO role[, ...]
例如,要拒绝角色 regularUsers 在所有图上 DELETE 关系类型为 bar 的关系的权限,请使用
DENY DELETE ON GRAPH * RELATIONSHIPS bar TO regularUsers
|
拥有 |
|
如果数据库中不存在某个标签或关系类型,则用户无法使用相应的权限,直到它被创建。有关更多信息,请参阅不存在的标签、关系类型和属性名称的权限。 |
SET LABEL 权限
SET LABEL 权限允许您使用Cypher SET 子句在节点上设置标签
GRANT [IMMUTABLE] SET LABEL { * | label[, ...] }
ON { HOME GRAPH | GRAPH[S] { * | name[, ...] } }
TO role[, ...]
例如,要授予角色 regularUsers 在图 neo4j 的节点上 SET 任何标签的权限,请使用
GRANT SET LABEL * ON GRAPH neo4j TO regularUsers
|
与许多其他 |
SET LABEL 权限也可以被拒绝
DENY [IMMUTABLE] SET LABEL { * | label[, ...] }
ON { HOME GRAPH | GRAPH[S] { * | name[, ...] } }
TO role[, ...]
例如,要拒绝角色 regularUsers 在所有图的节点上 SET 标签 foo 的权限,请使用
DENY SET LABEL foo ON GRAPH * TO regularUsers
|
如果数据库中不存在此标签的任何实例,则还需要 |
|
如果数据库中不存在某个标签,则用户无法使用相应的权限,直到它被创建。有关更多信息,请参阅不存在的标签、关系类型和属性名称的权限。 |
REMOVE LABEL 权限
REMOVE LABEL 权限允许您使用Cypher REMOVE 子句从节点中删除标签
GRANT [IMMUTABLE] REMOVE LABEL { * | label[, ...] }
ON { HOME GRAPH | GRAPH[S] { * | name[, ...] } }
TO role[, ...]
例如,要授予角色 regularUsers 从图 neo4j 的节点中 REMOVE 任何标签的权限,请使用
GRANT REMOVE LABEL * ON GRAPH neo4j TO regularUsers
|
与许多其他 |
REMOVE LABEL 权限也可以被拒绝
DENY [IMMUTABLE] REMOVE LABEL { * | label[, ...] }
ON { HOME GRAPH | GRAPH[S] { * | name[, ...] } }
TO role[, ...]
例如,要拒绝角色 regularUsers 从所有图的节点中删除标签 foo 的权限,请使用
DENY REMOVE LABEL foo ON GRAPH * TO regularUsers
|
如果数据库中不存在某个标签,则用户无法使用相应的权限,直到它被创建。有关更多信息,请参阅不存在的标签、关系类型和属性名称的权限。 |
SET PROPERTY 权限
SET PROPERTY 权限允许用户使用Cypher SET 子句在图中的节点或关系元素上设置属性
GRANT [IMMUTABLE] SET PROPERTY "{" { * | property[, ...] } "}"
ON { HOME GRAPH | GRAPH[S] { * | name[, ...] } }
[
ELEMENT[S] { * | label-or-rel-type[, ...] }
| NODE[S] { * | label[, ...] }
| RELATIONSHIP[S] { * | rel-type[, ...] }
]
TO role[, ...]
例如,要授予角色 regularUsers 在图 neo4j 的所有元素上 SET 任何属性的权限,请使用
GRANT SET PROPERTY {*} ON HOME GRAPH ELEMENTS * TO regularUsers
SET PROPERTY 权限也可以被拒绝
DENY [IMMUTABLE] SET PROPERTY "{" { * | property[, ...] } "}"
ON { HOME GRAPH | GRAPH[S] { * | name[, ...] } }
[
ELEMENT[S] { * | label-or-rel-type[, ...] }
| NODE[S] { * | label[, ...] }
| RELATIONSHIP[S] { * | rel-type[, ...] }
]
TO role[, ...]
例如,要拒绝角色 regularUsers 在所有图的带有标签 bar 的节点上 SET 属性 foo 的权限,请使用
DENY SET PROPERTY { foo } ON GRAPH * NODES bar TO regularUsers
|
如果用户尝试设置一个数据库中尚不存在的属性名称的属性,则用户还必须拥有 |
|
如果数据库中不存在某个标签、关系类型或属性名称,则用户无法使用相应的权限,直到它被创建。有关更多信息,请参阅不存在的标签、关系类型和属性名称的权限。 |
MERGE 权限
MERGE 权限是一个复合权限,它结合了 TRAVERSE 和 READ(即 MATCH)以及 CREATE 和 SET PROPERTY。这旨在启用Cypher MERGE 命令的使用,但也适用于所有需要这些权限的读写操作。
GRANT [IMMUTABLE] MERGE "{" { * | property[, ...] } "}"
ON { HOME GRAPH | GRAPH[S] { * | name[, ...] } }
[
ELEMENT[S] { * | label-or-rel-type[, ...] }
| NODE[S] { * | label[, ...] }
| RELATIONSHIP[S] { * | rel-type[, ...] }
]
TO role[, ...]
例如,要授予角色 regularUsers 在图 neo4j 的所有元素上 MERGE 的权限,请使用
GRANT MERGE {*} ON GRAPH neo4j ELEMENTS * TO regularUsers
无法拒绝 MERGE 权限。如果您希望阻止用户创建元素和设置属性:请使用 DENY CREATE 或 DENY SET PROPERTY。
|
如果用户尝试创建带有数据库中尚不存在的标签的节点,则用户还必须拥有 |
|
如果数据库中不存在某个标签、关系类型或属性名称,则用户无法使用相应的权限,直到它被创建。有关更多信息,请参阅不存在的标签、关系类型和属性名称的权限。 |
WRITE 权限
WRITE 权限允许用户在图上执行任何 WRITE 命令。
GRANT [IMMUTABLE] WRITE
ON { HOME GRAPH | GRAPH[S] { * | name[, ...] } }
TO role[, ...]
例如,要授予角色 regularUsers 在图 neo4j 上 WRITE 的权限,请使用
GRANT WRITE ON GRAPH neo4j TO regularUsers
|
与更具体的 |
WRITE 权限也可以被拒绝
DENY [IMMUTABLE] WRITE
ON { HOME GRAPH | GRAPH[S] { * | name[, ...] } }
TO role[, ...]
例如,要拒绝角色 regularUsers 在图 neo4j 上 WRITE 的权限,请使用
DENY WRITE ON GRAPH neo4j TO regularUsers
|
拥有 |
ALL GRAPH PRIVILEGES 权限
ALL GRAPH PRIVILEGES 权限允许用户在图上执行任何命令
GRANT [IMMUTABLE] ALL [ [ GRAPH ] PRIVILEGES ]
ON { HOME GRAPH | GRAPH[S] { * | name[, ...] } }
TO role[, ...]
例如,要授予角色 regularUsers 在图 neo4j 上 ALL GRAPH PRIVILEGES 的权限,请使用
GRANT ALL GRAPH PRIVILEGES ON GRAPH neo4j TO regularUsers
|
与更具体的 |
|
|
ALL GRAPH PRIVILEGES 权限也可以被拒绝
DENY [IMMUTABLE] ALL [ [ GRAPH ] PRIVILEGES ]
ON { HOME GRAPH | GRAPH[S] { * | name[, ...] } }
TO role[, ...]
例如,要拒绝角色 regularUsers 在图 neo4j 上的所有图权限,请使用
DENY ALL GRAPH PRIVILEGES ON GRAPH neo4j TO regularUsers