基于角色的访问控制(Perspectives 和 Scenes)
企业版
如 存储和共享 中所述,当使用 Bloom 服务器插件时,Perspectives 会存储在持久化的 Neo4j 数据库中。这意味着 Perspectives 和 Scenes 不仅可以在用户之间共享,而且管理员可以控制用户对它们的访问权限。要使用户能够创建和/或编辑 Perspective,他们需要对 `_Bloom_Perspective_` 标签和 `_Bloom_Scene_` 标签拥有 WRITE
访问权限,以便能够写入 Scene。请注意,`WRITE` 访问权限仅需要针对这两个标签,而不是整个数据库。
如 存储和共享 中所述,为用户创建自定义角色可以使管理员在访问控制方面更加明确。
请记住,所有具有 Bloom 访问权限的角色都需要在 `neo4j.conf` 文件中使用 `neo4j.bloom.authorization.role`(在 Neo4j 4.x 中)或 `dbms.bloom.authorization_role`(在 Neo4j 5 中)进行授权。有关更多信息,请参阅 安装服务器插件 中的步骤 5。
还可以进行更细粒度的访问控制,管理员可以控制用户对哪些属性可以访问/编辑。包括角色管理在内的访问控制在 操作手册 → RBAC 和细粒度权限 部分中进行了详细说明。 |
除了对 `_Bloom_Perspective_` 和 `_Bloom_Scene_` 标签的 `WRITE` 访问权限外,还可以使用 CREATE
和 SET PROPERTY
权限来进一步细化角色。通过明确授予这些权限,而不是更通用的 `WRITE` 权限,管理员可以将访问权限限制为仅创建新节点和/或更新 Perspective 或 Scene 中的属性。有关如何使用有限访问权限创建自定义角色的示例,请参阅后面的示例。
如果用户没有相应的访问权限,Bloom 中的相关功能将被隐藏。例如,如果用户没有被授予对 Perspective 的 `WRITE` 访问权限,他们将无法在 Perspective 库中看到创建选项,也无法编辑保存的 Cypher,并且他们无法对 Perspective 进行任何修改。相应地,如果用户没有被授予对 Scene 的 `WRITE` 访问权限,他们将无法在 Scene 抽屉中看到添加新 Scene 选项。

如果用户没有对 Scene 的 `WRITE` 访问权限,他们的访问权限将被限制为临时 Scene。这允许对 Scene 进行样式设置和编辑,但这些更改无法保存,并且 Scene 会在会话结束时丢失。
下面是如何创建具有 `READ` 访问权限的角色 `custom` 的示例。具有此角色的用户可以完全使用 Scene,而无需具有 `WRITE` 访问权限。
CREATE ROLE custom AS COPY OF reader
GRANT CREATE ON GRAPH `neo4j` NODE _Bloom_Scene_ TO `custom`
GRANT CREATE ON GRAPH `neo4j` RELATIONSHIP _Bloom_HAS_SCENE_ TO `custom`
GRANT SET PROPERTY {*} ON GRAPH `neo4j` NODE _Bloom_Scene_ TO `custom`
GRANT DELETE ON GRAPH `neo4j` NODE _Bloom_Scene_ TO `custom`
GRANT DELETE ON GRAPH `neo4j` RELATIONSHIP _Bloom_HAS_SCENE_ TO `custom`
数据库权限下的 Perspective 操作
下表根据授予用户的数据库权限映射了用户可以执行的各种 Perspective 操作。请注意,此表仅适用于 Bloom 插件设置,当存储由插件提供且 Perspectives 可以在用户之间共享时适用。对于没有插件的设置,Perspectives 会存储在用户机器上的本地位置,因此用户可以执行所有相关操作。
操作 | 只读 | 写入 | 写入 + 列出角色 | 写入 + 列出和创建角色 |
---|---|---|---|---|
打开库 |
是 |
是 |
是 |
是 |
从库中选择 Perspective |
是 |
是 |
是 |
是 |
允许本地 Perspective 编辑 |
否 |
是 |
是 |
是 |
保存编辑到存储 |
否 |
是 |
是 |
是 |
删除 Perspective |
否 |
是 |
是 |
是 |
创建新/生成 Perspective |
否 |
是 |
是 |
是 |
共享标签 |
是 |
是 |
是 |
是 |
查看已映射的角色 |
是,可以查看自己的角色,但不能更改 |
是 |
是 |
是 |
查看角色列表 |
否 |
无权访问 |
是 |
是 |
映射到角色 |
否 |
是(仅限默认数据库角色) |
是 |
是 |
删除角色映射 |
否 |
是 |
是 |
是 |
创建新角色 |
无权访问 |
无权访问 |
否 |
是 |
导出 |
是 |
是 |
是 |
是 |
导入 |
否 |
是 |
是 |
是 |
具有数据库写入权限的用户(即可以创建 Perspectives 的用户)也可以导出和导入 Perspectives。