知识库

用于暂停和重新激活用户的有用 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 语句来激活所有当前已定义的暂停用户。