恢复管理员用户和密码
本页面介绍如何重置密码以在用户密码丢失时恢复其访问权限。它特别关注如果所有管理员用户都被取消分配管理员角色,以及如果内置管理员角色已被删除,如何恢复管理员用户。
禁用身份验证
-
停止 Neo4j
bin/neo4j stop -
打开 neo4j.conf 文件并将
dbms.security.auth_enabled参数设置为false以禁用身份验证dbms.security.auth_enabled=false -
在恢复阶段阻止网络连接,以便用户只能通过
localhost连接到 Neo4j。这可以通过临时注释掉server.default_listen_address参数并提供特定的 localhost 值来实现server.default_listen_address=127.0.0.1确保您已阻止任何配置为监听
listen_addresses的单个服务的所有网络连接。 -
启动 Neo4j
bin/neo4j start
-
停止集群的所有成员
bin/neo4j stop -
在每个成员上,打开 neo4j.conf 文件并修改以下设置
-
将
dbms.security.auth_enabled参数设置为false以禁用身份验证dbms.security.auth_enabled=false -
禁用 HTTP 和 HTTPS 网络连接,并将
bolt连接器限制为仅使用localhost。将server.http.enabled设置为false。这确保在恢复期间,外部人员无法访问集群。server.http.enabled=false #server.https.enabled=true server.bolt.listen_address:127.0.0.1
-
-
启动集群的所有成员
bin/neo4j start
恢复丢失的密码
您可以使用诸如 Cypher Shell 或 Neo4j Browser 之类的客户端连接到 system 数据库并为管理员用户设置新密码。
|
在集群部署中,您只需在一个集群成员上完成这些步骤。 |
-
根据您的部署,完成禁用身份验证中的步骤。
-
使用 Cypher shell 连接到
system数据库。或者,登录 Neo4j Browser。bin/cypher-shell -d system如果您为
bolt连接器指定了非默认端口,请在cypher-shell命令中添加-a neo4j://<您的集群成员>:<非默认 bolt 端口>,以便能够连接到您的集群成员。 -
为管理员用户设置新密码。在此示例中,管理员用户名为
neo4j。ALTER USER neo4j SET PASSWORD 'mynewpassword' -
退出
cypher-shell控制台:exit; -
根据您的部署,继续执行恢复后步骤。
恢复未分配的管理员角色
您可以使用诸如 Cypher Shell 或 Neo4j Browser 之类的客户端连接到 system 数据库并授予现有用户管理员用户角色。
|
在集群部署中,您只需在一个集群成员上完成这些步骤。 |
恢复管理员角色
如果您已从系统中完全移除了管理员角色,您可以使用诸如 Cypher Shell 或 Neo4j Browser 之类的客户端连接到 system 数据库,并使用其原始功能重新创建该角色。
|
在集群部署中,您只需在一个集群成员上完成这些步骤。 |
-
根据您的部署,完成禁用身份验证中的步骤。
-
使用 Cypher shell 连接到
system数据库。或者,登录 Neo4j Browser。bin/cypher-shell -d system如果您为
bolt连接器指定了非默认端口,请在cypher-shell命令中添加-a neo4j://<您的集群成员>:<非默认 bolt 端口>,以便能够连接到您的集群成员。 -
用其原始功能重新创建管理员角色。
CREATE ROLE admin; GRANT ALL DBMS PRIVILEGES ON DBMS TO admin; GRANT TRANSACTION MANAGEMENT ON DATABASE * TO admin; GRANT START ON DATABASE * TO admin; GRANT STOP ON DATABASE * TO admin; GRANT MATCH {*} ON GRAPH * TO admin; GRANT WRITE ON GRAPH * TO admin; GRANT ALL ON DATABASE * TO admin; -
将管理员用户角色授予现有用户。
在运行
:exit命令之前,我们建议将新创建的角色授予一个用户。尽管这是可选的,但如果没有此步骤,您将只收集了所有管理员权限到一个无人分配的角色中。要将角色授予用户(假设您的现有用户名为
neo4j),您可以运行GRANT ROLE admin TO neo4j; -
退出
cypher-shell控制台:exit; -
根据您的部署,继续执行恢复后步骤。