Docs Menu

db.changeUserPassword()

db.changeUserPassword(username, password)

更新用户密码。在定义用户的数据库中运行方法,即用户使用 created 创建的数据库。

Important

mongosh Method

本页面提供 mongosh 方法的相关信息。这不是数据库命令或特定语言驱动程序(例如 Node.js)的相关文档。

有关数据库命令,请参阅 updateUser 命令。

如需了解 MongoDB API 驱动程序,请参阅特定语言的 MongoDB 驱动程序文档。

Parameter
Type
Description

username

string

希望更改其密码的用户的名称。

password

string

用户的密码。该值可为以下任一项:

  • 以明文字符串表示的用户密码,或

  • passwordPrompt()提示输入用户密码。

    您可以将 passwordPrompt() 方法与各种用户身份验证/管理方法/命令结合使用,以提示输入密码,而不是直接在方法/命令调用中指定密码。不过,您仍然可以像使用早期版本的 mongo shell 一样直接指定密码。

writeConcern

文档

可选。操作的写关注级别。请参阅写关注规范

此方法可用于以下环境中托管的部署:

Important

要修改数据库其他用户的密码,必须对该数据库执行 changePassword 操作

警告

默认情况下,db.changeUserPassword() 以明文形式将所有指定数据发送到 MongoDB 实例,即使使用 passwordPrompt() 也是如此。使用 TLS 传输加密来保护客户端和服务器之间的通信,包括 db.changeUserPassword() 发送的密码。有关启用 TLS 传输加密的操作说明,请参阅为 TLS/SSL 配置 mongodmongos

MongoDB 不以明文形式存储密码。仅当未启用 TLS 传输加密时,密码才会在客户端与服务器之间的传输过程中容易受到攻击。

以下操作将 products 数据库中名为 accountUser 的用户的密码更改为 SOh3TbYhx8ypJPxmt1oOfL

Tip

您可以将 passwordPrompt() 方法与各种用户身份验证/管理方法/命令结合使用,以提示输入密码,而不是直接在方法/命令调用中指定密码。不过,您仍然可以像使用早期版本的 mongo shell 一样直接指定密码。

use products
db.changeUserPassword("accountUser", passwordPrompt())

mongosh 提示输入密码时,输入新密码。

您也可以将新密码直接传递给db.changeUserPassword()

use products
db.changeUserPassword("accountUser", "SOh3TbYhx8ypJPxmt1oOfL")