Overview
Los usuarios con privilegios adecuados pueden cambiar sus propias contraseñas y datos personalizados. Custom data almacena información opcional del usuario.
Considerations
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
Requisitos previos
Para modificar su propia contraseña y datos personalizados, debe tener privilegios que otorguen changeOwnPassword y changeOwnCustomData acciones respectivamente en la base de datos del usuario.
Conéctate como un usuario con privilegios para gestionar usuarios y roles.
Conéctese amongodomongoscon privilegios para administrar usuarios y roles, como un usuario con el roluserAdminAnyDatabase. El siguiente procedimiento utiliza el myUserAdmin creado en "Habilitar control de acceso en implementaciones autoadministradas".
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.
Crea un rol con los privilegios adecuados.
En la base de datos admin, createun nuevo rol conchangeOwnPasswordychangeOwnCustomData.
use admin db.createRole( { role: "changeOwnPasswordCustomDataRole", privileges: [ { resource: { db: "", collection: ""}, actions: [ "changeOwnPassword", "changeOwnCustomData" ] } ], roles: [] } )
Agregue un usuario con este rol.
En la test base decreate datos, se crea un nuevo usuario con el "changeOwnPasswordCustomDataRole" rol. Por ejemplo, la siguiente operación crea un usuario con el rol integrado readWrite y el rol, creado por el "changeOwnPasswordCustomDataRole" 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 otorgarle a un usuario existente el nuevo rol,db.grantRolesToUser() utilice.
Procedimiento
Conéctese con los privilegios adecuados.
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 tiene los privilegios especificados en la sección Requisitos previos, así como para ver la información del usuario, utilice el comando con usersInfo la showPrivileges opción.
Cambia tu contraseña y datos personalizados.
Utilice el método para actualizar la contraseña y los datos db.updateUser() 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.