身份验证与授权

本节介绍 Neo4j 身份验证与授权方面的重大更改和弃用。

删除用于身份验证与授权的平面文件

Neo4j 3.x 在平面文件中管理身份验证与授权。

Neo4j 4.0 引入了一个复杂的安全模型,该模型存储在 system 图中,并维护在一个名为 system 数据库的特殊数据库中。authroles 文件的内容将自动迁移到 system 数据库。如果您将多个 Neo4j 3.5 部署中的多个数据库合并在一起或升级集群,则必须在迁移之前手动合并 authrole 文件。

neo4j-admin 命令 set-initial-passwordset-default-admin 在 4.0 版本中继续有效,并写入与 3.5 版本相同的文件。在新版本 Neo4j 安装后首次启动时,将考虑这些文件中的任何内容。

命令 set-initial-password 仅在默认用户 neo4j(带默认密码)是唯一存在用户时应用,而 set-default-admin 仅在不存在任何角色时使用。更多信息,请参阅操作手册 4.0 → 设置初始密码

基于角色的访问控制

Neo4j 3.1 引入了基于角色的访问控制概念。可以创建用户并将其分配到角色,以控制他们是否可以读取、写入和管理数据库。在 Neo4j 4.0 中,通过添加特权(privileges),此模型得到了显著增强,特权是定义用户权利的底层访问控制规则。

迁移后,仍可以为每个数据库配置不同的安全设置,但这需要通过在迁移后授予特定于数据库的特权和角色来管理。3.5 中内置的角色仍然存在,但在迁移后将适用于所有数据库,除非使用新的安全管理命令明确修改。有关管理数据库特定角色和特权能力的更多详细信息,请参阅Cypher® 手册 4.0 → 管理

集群的不同实例上不再可能拥有不同的安全特权。整个集群共享使用 Cypher 管理命令在 system 数据库中配置的特权。实际上,这意味着用户无论访问集群中的哪个服务器都拥有相同的特权。

已弃用和已删除的安全存储过程

Neo4j 3.x 中用于用户管理的内置安全存储过程 dbms.security 在 4.x 中已弃用。如果您仍想使用它们,它们必须针对 system 数据库运行,并且不能后跟 YIELD

有两种重写代码和例程以管理身份验证与授权的方法。

  • (推荐) 使用 xref: version-4/migration/surface-changes/auth.adoc#convert-security-procedures-table[转换表] 将存储过程重写为相应的 Cypher 管理命令。所有管理命令都必须针对 system 数据库执行。当使用 Neo4j 驱动程序 (Bolt 协议) 连接到 DBMS 时,管理命令将自动路由到系统数据库 (Neo4j 4.1+)。

  • 针对 system 数据库运行存储过程,并在应用程序侧通过后处理替换任何 YIELD 部分。

存储过程 dbms.security.changePassword(password, requirePasswordChange) 已完全删除,因为相应的 Cypher 管理命令也需要旧密码,因此更安全。
表 1. 存储过程到 Cypher 管理命令转换
存储过程 管理命令

dbms.security.createUser

CREATE USER

dbms.security.deleteUser

DROP USER

dbms.security.changePassword

ALTER CURRENT USER SET PASSWORD

dbms.security.listUsers

SHOW USERS

dbms.security.changeUserPassword

ALTER USER

dbms.security.suspendUser

ALTER USER

dbms.security.activateUser

ALTER USER

dbms.security.addRoleToUser

GRANT ROLE TO USER

dbms.security.removeRoleFromUser

REVOKE ROLE FROM USER

dbms.security.listRoles

SHOW ROLES

dbms.security.listRolesForUser

SHOW USERS

dbms.security.listUsersForRole

SHOW ROLES WITH USERS

dbms.security.createRole

CREATE ROLE

dbms.security.deleteRole

DROP ROLE

有关管理命令的更多信息,请参阅Cypher 手册 4.0 → 用户和角色管理

© . All rights reserved.