db.changeUserPassword()

On this page本页内容

Definition定义

db.changeUserPassword(username, password)

Updates a user's password. 更新用户的密码。Run the method in the database where the user is defined, i.e. the database you created the user.在定义用户的数据库中运行该方法,即创建用户的数据库。

Parameter参数Type类型Description描述
usernamestringThe name of the user whose password you wish to change.要更改其密码的用户的名称。
passwordstring

The user's password. The value can be either:用户的密码。该值可以是:

  • the user's password in cleartext string, or明文字符串形式的用户密码,或
  • passwordPrompt() to prompt for the user's password.
Tip提示

Starting in version 4.2 of the mongo shell, you can use the passwordPrompt() method in conjunction with various user authentication/management methods/commands to prompt for the password instead of specifying the password directly in the method/command call. 从mongoshell的4.2版开始,您可以将passwordPrompt()方法与各种用户身份验证/管理方法/命令结合使用,提示输入密码,而不是直接在方法/命令调用中指定密码。However, you can still specify the password directly as you would with earlier versions of the mongo shell.但是,您仍然可以像使用早期版本的mongoshell那样直接指定密码。

writeConcerndocument

Optional. 可选。The level of write concern for the operation. 操作的写入关注级别。See Write Concern Specification.请参阅写入关注点规范

Required Access所需访问权限

To modify the password of another user on a database, you must have the changePassword action on that database.要修改数据库上另一用户的密码,必须对该数据库执行changePassword操作

Behavior行为

Warning警告

By default, db.changeUserPassword() sends all specified data to the MongoDB instance in cleartext, even if using passwordPrompt(). 默认情况下,db.changeUserPassword()将所有指定的数据以明文形式发送到MongoDB实例,即使使用passwordPrompt()也是如此。Use TLS transport encryption to protect communications between clients and the server, including the password sent by db.changeUserPassword(). 使用TLS传输加密保护客户端和服务器之间的通信,包括db.changeUserPassword()发送的密码。For instructions on enabling TLS transport encryption, see Configure mongod and mongos for TLS/SSL.有关启用TLS传输加密的说明,请参阅为TLS/SSL配置mongodmongos

MongoDB does not store the password in cleartext. MongoDB不以明文形式存储密码。The password is only vulnerable in transit between the client and the server, and only if TLS transport encryption is not enabled.只有在客户端和服务器之间的传输过程中,并且只有在未启用TLS传输加密时,密码才会受到攻击。

Example示例

The following operation changes the password of the user named accountUser in the products database to SOh3TbYhx8ypJPxmt1oOfL:以下操作将产品数据库中名为accountUser的用户的密码更改为SOh3TbYhx8ypJPxmt1oOfL

Tip提示

Starting in version 4.2 of the mongo shell, you can use the passwordPrompt() method in conjunction with various user authentication/management methods/commands to prompt for the password instead of specifying the password directly in the method/command call. 从mongoshell的4.2版开始,您可以将passwordPrompt()方法与各种用户身份验证/管理方法/命令结合使用,提示输入密码,而不是直接在方法/命令调用中指定密码。However, you can still specify the password directly as you would with earlier versions of the mongo shell.但是,您仍然可以像使用早期版本的mongoshell那样直接指定密码。

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

When prompted in mongosh for the password, enter the new password.mongosh提示输入密码时,输入新密码。

You can also pass the new password directly to db.changeUserPassword():您还可以将新密码直接传递给db.changeUserPassword()

use products
db.changeUserPassword("accountUser", "SOh3TbYhx8ypJPxmt1oOfL")
←  db.auth()db.createUser() →