Updating a User
db.updateUser(username, update, writeConcern)
- username indicates the username to be updated.
- update is a document containing the replacement data for the user.
- writeConcern: The write concern level of the update operation. This parameter is optional.
db.updateUser(
"<username>",
{
customData : { <any information> },
roles : [
{ role: "<role>", db: "<database>" } | "<role>",
...
],
pwd: passwordPrompt(), // Or "<cleartext password>"
authenticationRestrictions: [
{
clientSource: ["<IP>" | "<CIDR range>", ...],
serverAddress: ["<IP>", | "<CIDR range>", ...]
},
...
],
mechanisms: [ "<SCRAM-SHA-1|SCRAM-SHA-256>", ... ],
passwordDigestor: "<server|client>"
},
writeConcern: { <write concern> }
)
|
Field |
Type |
Description |
|---|---|---|
|
customData |
Documents |
Optional. Any information. |
|
roles |
Array |
Optional. The role assigned to the user. An update to the roles array overrides the previous array's values. |
|
pwd |
string |
Optional. The user's password. |
|
authenticationRestrictions |
Array |
Optional. The IP address or CIDR blocks that can be accessed by a role. |
|
mechanisms |
Array |
Optional. The specific SCRAM mechanism or mechanisms for the user credentials. Valid values are SCRAM-SHA-1 and SCRAM-SHA-256. |
|
passwordDigestor |
string |
Optional. Whether to verify the password on the server or client. The default value is server. |
Example
- Updating User Information
The information about the appClient01 user in the products database is as follows:
{ "_id" : "products.appClient01", "token" : NumberLong("8424642624807814713"), "user" : "appClient01", "db" : "products", "customData" : { "empID" : "12345", "badge" : "9156" }, "roles" : [ { "role" : "readWrite", "db" : "products" }, { "role" : "read", "db" : "inventory" } ], "mechanisms" : [ "SCRAM-SHA-1", "SCRAM-SHA-256" ] }The following describes how to update the user-defined data and role data.
use products db.updateUser( "appClient01", { customData : { employeeId : "0x3039" }, roles : [ { role : "read", db : "assets" } ] } )The updated information about the appClient01 user in the products database is as follows:
{ "_id" : "products.appClient01", "token" : NumberLong("8424642624807814713"), "user" : "appClient01", "db" : "products", "customData" : { "employeeId" : "0x3039" }, "roles" : [ { "role" : "read", "db" : "assets" } ], "mechanisms" : [ "SCRAM-SHA-1", "SCRAM-SHA-256" ] } - Updating User Information to Be a User with Only the SCRAM-SHA-256 Certificate
The information about the reportUser256 user in the reporting database is as follows:
{ "_id" : "reporting.reportUser256", "token" : NumberLong("2827251846225877395"), "user" : "reportUser256", "db" : "reporting", "roles" : [ ], "mechanisms" : [ "SCRAM-SHA-1", "SCRAM-SHA-256" ] }The following describes how to change the current user with both SCRAM-SHA-256 and SCRAM-SHA-1 certificates to a user with only the SCRAM-SHA-256 certificate.
- If the password is not specified with mechanisms, mechanisms can only be updated to a subset of the user's current SCRAM mechanism.
- If the password is specified with mechanisms, you can specify any supported SCRAM mechanism.
- For SCRAM-SHA-256, passwordDigestor must be set to the default value server.
db.updateUser( "reportUser256", { mechanisms: [ "SCRAM-SHA-256" ] } )The updated information about the reportUser256 user in the reporting database is as follows:
{ "_id" : "reporting.reportUser256", "token" : NumberLong("2827251846225877395"), "user" : "reportUser256", "db" : "reporting", "roles" : [ ], "mechanisms" : [ "SCRAM-SHA-256" ] }
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.