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 especificas la contraseña para la opción de línea de comandos -p, mongosh solicita la 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
Puede usar el método junto con varios métodos o comandos de autenticación/gestión de usuarios para solicitar la contraseña en lugar de especificarla directamente en la llamada al método/comando. Sin embargo, puede especificarla directamente como lo hacía con versiones anteriores passwordPrompt() del mongo shell.
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
Puede usar el método junto con varios métodos o comandos de autenticación/gestión de usuarios para solicitar la contraseña en lugar de especificarla directamente en la llamada al método/comando. Sin embargo, puede especificarla directamente como lo hacía con versiones anteriores passwordPrompt() del mongo shell.
use test db.updateUser( "user123", { pwd: passwordPrompt(), // or cleartext password customData: { title: "Senior Manager" } } )
Introduzca la contraseña cuando se lo pidan.