Docs Menu
Docs Home
/ /
Control de acceso basado en roles

Cambie su contraseña y datos personalizados en implementaciones autogestionadas

Los usuarios con 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 su propia contraseña y datos personalizados, debe tener privilegios que otorguen changeOwnPassword y changeOwnCustomData acciones respectivamente en la base de datos del usuario.

1

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.

2

En la base de datos admin, createun nuevo rol conchangeOwnPasswordychangeOwnCustomData.

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

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.

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 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.

2

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.

Volver

Gestionar Usuarios y Roles

En esta página