知识库

用于暂停和重新激活用户的有用 Cypher 语句

从 Neo4j 3.1 开始并实施本地数据库用户,可以暂停用户,从而阻止用户进一步进行身份验证。

要查看所有已暂停的用户,请运行以下 Cypher

call dbms.security.listUsers() yield username, flags
with username,flags
where 'is_suspended' in flags
return username

此外,如果您遇到需要暂停所有用户的需求,例如在周末维护期间阻止所有数据库访问,则可以使用以下 Cypher 生成 Cypher 语句,然后可以使用这些语句来暂停和随后重新激活所有用户。

  • 构建用于激活所有当前“活动”用户的 Cypher 语句

// users with no  is_suspended flag and build the statement to activate the user and not force a password change
call dbms.security.listUsers() yield username, flags with username, flags
where not 'is_suspended' in flags
return 'call dbms.security.activateUser(\'' + username + '\',false);'
  • 构建用于暂停所有当前“活动”用户的 Cypher 语句

// users with no  is_suspended flag
call dbms.security.listUsers() yield username, flags with username, flags
where not 'is_suspended' in flags
return 'call dbms.security.suspendUser(\'' + username + '\');'

最后,在维护窗口期间,首先运行上面生成的 Cypher 语句以暂停所有用户。请注意,无法暂停您当前登录的用户,因此您可能会看到调用 dbms.security.suspendUser 导致失败错误消息“不允许暂停您自己(用户'neo4j')”。

在维护窗口完成时,将运行生成的 Cypher 语句以激活所有当前定义的已暂停用户。