恢复管理员用户和密码
此页面描述了如何在用户丢失密码时重置密码以恢复用户的访问权限。它特别关注如何在所有管理员用户都被取消分配管理员角色后恢复管理员用户,以及如何在删除内置管理员角色后重新创建它。
禁用身份验证
-
停止 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
数据库,并为admin用户设置新密码。
在集群部署中,您应该仅在一个集群成员上完成这些步骤。 |
-
根据您的部署完成禁用身份验证中的步骤。
-
使用Cypher shell连接到
system
数据库。或者,登录Neo4j Browser。bin/cypher-shell -d system
如果您为
bolt
连接器指定了非默认端口,请将-a neo4j://<your-cluster-member>:<non-default-bolt-port>
添加到cypher-shell
命令中,以便能够连接到您的集群成员。 -
为admin用户设置新密码。在此示例中,admin用户名为
neo4j
。ALTER USER neo4j SET PASSWORD 'mynewpassword'
-
退出
cypher-shell
控制台:exit;
-
根据您的部署继续执行恢复后步骤。
恢复未分配的admin角色
您可以使用诸如Cypher Shell或Neo4j Browser之类的客户端连接到system
数据库,并将admin用户角色授予现有用户。
在集群部署中,您应该仅在一个集群成员上完成这些步骤。 |
-
根据您的部署完成禁用身份验证中的步骤。
-
使用Cypher shell连接到
system
数据库。或者,登录Neo4j Browser。bin/cypher-shell -d system
如果您为
bolt
连接器指定了非默认端口,请将-a neo4j://<your-cluster-member>:<non-default-bolt-port>
添加到cypher-shell
命令中,以便能够连接到您的集群成员。 -
将admin用户角色授予现有用户。在此示例中,用户名为
neo4j
。GRANT ROLE admin TO neo4j
-
退出
cypher-shell
控制台:exit;
-
根据您的部署继续执行恢复后步骤。
恢复admin角色
如果您已从系统中完全删除了admin角色,则可以使用诸如Cypher Shell或Neo4j Browser之类的客户端连接到system
数据库,并使用其原始功能重新创建该角色。
在集群部署中,您应该仅在一个集群成员上完成这些步骤。 |
-
根据您的部署完成禁用身份验证中的步骤。
-
使用Cypher shell连接到
system
数据库。或者,登录Neo4j Browser。bin/cypher-shell -d system
如果您为
bolt
连接器指定了非默认端口,请将-a neo4j://<your-cluster-member>:<non-default-bolt-port>
添加到cypher-shell
命令中,以便能够连接到您的集群成员。 -
使用其原始功能重新创建admin角色。
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;
-
将admin用户角色授予现有用户。
在运行
:exit
命令之前,我们建议将新创建的角色授予用户。尽管这是可选的,但如果没有此步骤,您将仅在未分配给任何人的角色中收集所有admin权限。要将角色授予用户(假设您的现有用户名为
neo4j
),您可以运行GRANT ROLE admin TO neo4j;
-
退出
cypher-shell
控制台:exit;
-
根据您的部署继续执行恢复后步骤。