db.changeUserPassword()
定义
db.changeUserPassword(username, password)
更新用户密码。 在定义用户的数据库中运行该方法,即您
created
用户的数据库。重要
mongosh 方法
本页面提供
mongosh
方法的相关信息。这不是数据库命令或特定语言驱动程序(例如 Node.js)的相关文档。有关数据库命令,请参阅
updateUser
命令。如需了解 MongoDB API 驱动程序,请参阅特定语言的 MongoDB 驱动程序文档。
Parameter类型说明username
字符串
希望更改其密码的用户的名称。
password
字符串
用户的密码。该值可为以下任一项:
以明文字符串表示的用户密码,或
passwordPrompt()
提示输入用户密码。您可以将
passwordPrompt()
方法与各种用户身份验证/管理方法/命令结合使用,以提示输入密码,而不是直接在方法/命令调用中指定密码。不过,您仍然可以像使用早期版本的mongo
shell 一样直接指定密码。
writeConcern
文档
兼容性
此方法可用于以下环境中托管的部署:
重要
MongoDB Atlas集群不支持此命令。 有关Atlas支持所有命令的信息,请参阅不支持的命令。
MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本
MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本
必需的访问权限
要修改数据库其他用户的密码,必须对该数据库执行 changePassword
操作。
行为
警告
默认情况下,db.changeUserPassword()
以明文形式将所有指定数据发送到 MongoDB 实例,即使使用 passwordPrompt()
也是如此。使用 TLS 传输加密来保护客户端和服务器之间的通信,包括 db.changeUserPassword()
发送的密码。有关启用 TLS 传输加密的操作说明,请参阅为 TLS/SSL 配置 mongod
和 mongos
。
MongoDB 不以明文形式存储密码。仅当未启用 TLS 传输加密时,密码才会在客户端与服务器之间的传输过程中容易受到攻击。
例子
以下操作将 products
数据库中名为 accountUser
的用户的密码更改为 SOh3TbYhx8ypJPxmt1oOfL
:
提示
您可以将 passwordPrompt()
方法与各种用户身份验证/管理方法/命令结合使用,以提示输入密码,而不是直接在方法/命令调用中指定密码。不过,您仍然可以像使用早期版本的 mongo
shell 一样直接指定密码。
use products db.changeUserPassword("accountUser", passwordPrompt())
当 mongosh
提示输入密码时,输入新密码。
您也可以将新密码直接传递给db.changeUserPassword()
:
use products db.changeUserPassword("accountUser", "SOh3TbYhx8ypJPxmt1oOfL")