加载权限
此功能从 Neo4j 5.13 开始可用。
本节介绍如何使用 Cypher 管理加载权限。所有加载权限都应用于整个系统。与 DBMS 权限一样,它们不属于任何特定数据库或图。有关图、数据库和 DBMS 之间差异的更多详细信息,请参阅 Cypher 手册 → Cypher 和 Neo4j。
加载权限应用于 Cypher 的 LOAD CSV 子句,决定是否可以从给定源加载数据。
加载权限语法
加载权限是使用 Cypher 管理命令分配的。它们可以像其他权限一样被授予、拒绝和撤销。有关更多详细信息,请参阅 RBAC 和细粒度权限。
| 命令 | 描述 |
|---|---|
|
使指定的角色能够在查询中加载外部数据。 |
|
使指定的角色能够在查询中从给定的 CIDR 范围加载外部数据。在 5.16 中引入 |
|
有关语法描述的更多详细信息,请参阅 Cypher 管理命令的语法。 |
与其他权限不同,LOAD 权限不是在 DBMS、DATABASE 或 GRAPH 上授予、拒绝或撤销,而是在要加载数据的源上授予、拒绝或撤销。添加 ON ALL DATA 表示角色拥有从所有源加载数据的权限。要仅允许从特定 CIDR 范围给出的源加载数据,请使用 ON CIDR cidr。
|
强烈建议仅通过 HTTPS 等安全协议允许资源加载,而不是使用 HTTP 等不安全的协议。这可以通过将可访问范围限制为仅使用安全协议的受信任源来实现。如果绝对无法避免使用不安全的协议,Neo4j 会在内部采取措施,以增强这些请求在自身限制内的安全性。但是,这意味着虚拟主机上的不安全 URL 将无法正常工作,除非您将 JVM 参数 |
ALL DATA 权限
ALL DATA 上的加载权限启用或禁用数据加载。如果已授予,用户可以从任何源加载数据。如果缺少或被拒绝,则根本无法加载任何数据。
roleLoadAllData 角色的用户使用 LOAD CSV 加载数据的权限GRANT LOAD ON ALL DATA TO roleLoadAllData
roleLoadAllData 角色的所有权限列出为命令SHOW ROLE roleLoadAllData PRIVILEGES AS COMMANDS
| 命令 |
|---|
|
行:1 |
LOAD ON ALL DATA 权限默认授予 PUBLIC 角色。
CIDR 权限
此功能从 Neo4j 5.16 开始可用。
CIDR cidr 上的加载权限启用或禁用从给定的 IPv4 或 IPv6 CIDR 范围加载数据。如果已授予,用户可以从给定 CIDR 范围内的源加载数据。如果缺少或被拒绝,则无法从给定 CIDR 范围内的源加载任何数据。
roleLoadCidr 角色的用户使用 LOAD CSV 从 127.0.0.1/32 加载数据DENY LOAD ON CIDR "127.0.0.1/32" TO roleLoadCidr
roleLoadCidr 角色的所有权限列出为命令SHOW ROLE roleLoadCidr PRIVILEGES AS COMMANDS
| 命令 |
|---|
|
行:1 |