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.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot