Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Cambie su contraseña y datos personalizados en implementaciones autogestionadas

Los usuarios con los privilegios adecuados pueden cambiar sus propias contraseñas y datos personalizados. Custom data almacena información opcional del usuario.

Para generar una contraseña segura que se pueda utilizar en este procedimiento, utiliza el comando rand de la utilidad openssl. Por ejemplo, ejecuta openssl rand con las siguientes opciones para crear una cadena codificada en base64 de 48 bytes pseudoaleatorios:

openssl rand -base64 48

Para modificar tu propia contraseña y tus datos personalizados, debes tener privilegios que otorguen changeOwnPassword y changeOwnCustomData acciones respectivamente en la base de datos del usuario.

1

Conéctate al mongod o al mongos con privilegios para gestionar usuarios y roles, como un usuario con el rol de userAdminAnyDatabase. El siguiente procedimiento utiliza la myUserAdmin creada en Habilitar el control de acceso en las implementaciones autogestionadas.

mongosh --port 27017 -u myUserAdmin -p --authenticationDatabase 'admin'

Si no especifica la contraseña para el -p opción de línea de comandos, solicita lamongosh contraseña.

2

En la base de datos de admin, create un nuevo rol con changeOwnPassword y changeOwnCustomData.

use admin
db.createRole(
{ role: "changeOwnPasswordCustomDataRole",
privileges: [
{
resource: { db: "", collection: ""},
actions: [ "changeOwnPassword", "changeOwnCustomData" ]
}
],
roles: []
}
)
3

En la base de datos test, create un nuevo usuario con el rol creado de "changeOwnPasswordCustomDataRole". Por ejemplo, la siguiente operación crea un usuario con tanto el rol incorporado readWrite como el "changeOwnPasswordCustomDataRole" creado por el usuario.

Tip

Puedes usar el método passwordPrompt() en conjunto con varios métodos y comandos de gestión de autenticación de usuarios para solicitar la contraseña en lugar de especificar la contraseña directamente en la llamada al método o comando. Sin embargo, aún puedes especificar la contraseña directamente como lo harías con las versiones anteriores del shell mongo.

use test
db.createUser(
{
user:"user123",
pwd: passwordPrompt(), // or cleartext password
roles:[ "readWrite", { role:"changeOwnPasswordCustomDataRole", db:"admin" } ]
}
)

Para otorgar a un usuario existente el nuevo rol, use db.grantRolesToUser().

1

Conéctese a mongod o como un usuario con los privilegios mongos adecuados.

Por ejemplo, la siguiente operación se conecta a MongoDB como user123 creado en la sección Prerrequisitos.

mongosh --port 27017 -u user123 --authenticationDatabase 'test' -p

Si no especificas la contraseña para la opción de línea de comandos -p, mongosh solicita la contraseña.

Para comprobar que tienes los privilegios especificados en la sección Requisitos previos, así como para ver la información del usuario, utiliza el comando usersInfo con la opción showPrivileges.

2

Usa el método db.updateUser() para actualizar la contraseña y los datos personalizados.

Por ejemplo, la siguiente operación cambia la contraseña del usuario a KNlZmiaNUp0B y los datos personalizados a { title: "Senior Manager" }:

Tip

Puedes usar el método passwordPrompt() en conjunto con varios métodos y comandos de gestión de autenticación de usuarios para solicitar la contraseña en lugar de especificar la contraseña directamente en la llamada al método o comando. Sin embargo, aún puedes especificar la contraseña directamente como lo harías con las versiones anteriores del shell mongo.

use test
db.updateUser(
"user123",
{
pwd: passwordPrompt(), // or cleartext password
customData: { title: "Senior Manager" }
}
)

Introduzca la contraseña cuando se lo pidan.

Volver

Gestionar Usuarios y Roles

En esta página