写入权限
写入权限是为图的不同部分定义的
-
CREATE- 允许创建节点和关系。 -
DELETE- 允许删除节点和关系。 -
SET LABEL- 允许使用SET子句设置指定的节点标签。 -
REMOVE LABEL- 允许使用REMOVE子句删除指定的节点标签。 -
SET PROPERTY- 允许在节点和关系上设置属性。
还有一些复合权限,它们组合了上述特定权限
|
有关语法描述的更多详细信息,请参阅 管理命令的 Cypher 语法。 |
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在所有图上创建标签为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在所有图上删除关系类型为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的节点的属性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