Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

Altere sua senha e dados personalizados

Nesta página

  • Visão geral
  • Considerações
  • Pré-requisitos
  • Procedimento

Usuários com privilégios apropriados podem alterar suas próprias senhas e dados personalizados. Custom data armazena informações opcionais do usuário.

Para gerar uma senha forte para uso neste procedimento, você pode utilizar o comando openssl da utilidade rand. Por exemplo, questão openssl rand com as seguintes opções para criar uma string codificada por base48 de 48 bytes pseudo-aleatórios:

openssl rand -base64 48

Para modificar sua própria senha e dados personalizados, você deve ter privilégios que concedam changeOwnPassword e changeOwnCustomData ações respectivamente no banco de dados do usuário.

1

Conecte ao mongod ou mongos com privilégios para gerenciar usuários e papéis, como um usuário com papel do userAdminAnyDatabase. O procedimento seguinte utiliza o myUserAdmin criado em Habilitar Controle de Acesso.

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

Se você não especificar a senha para a opção de linha de comando -p , o mongosh solicitará a senha.

2

No banco de dados do admin, create uma nova função com changeOwnPassword e changeOwnCustomData.

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

No banco de dados do test, create um novo usuário com o papel criado do "changeOwnPasswordCustomDataRole". Por exemplo, a seguinte operação cria um usuário com o papel embutido readWrite e o "changeOwnPasswordCustomDataRole" criado pelo usuário.

Dica

A partir da versão 4.2 do shell mongo, você pode usar o método passwordPrompt() em conjunto com vários métodos/comandos de autenticação/gerenciamento de usuário para solicitar a senha em vez de especificar a senha diretamente na chamada de método/comando. No entanto, você ainda pode especificar a senha diretamente como faria com versões anteriores do shell mongo .

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

Para conceder a um usuário existente a nova role, utilize db.grantRolesToUser().

1

Conecte ao mongod ou mongos como um usuário com privilégios apropriados.

Por exemplo, a seguinte operação conecta ao MongoDB como user123 criado na seção Pré -requisitos.

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

Se você não especificar a senha para a opção de linha de comando -p , o mongosh solicitará a senha.

Para verificar se você tem os privilégios especificados na seção Pré -requisitos, bem como para ver as informações do usuário, use o comando usersInfo com a opção showPrivileges .

2

Utilize o método db.updateUser() para atualizar a senha e os dados personalizados.

Por exemplo, a seguinte operação altera a senha do usuário para KNlZmiaNUp0B e dados personalizados { title: "Senior Manager" } para

Dica

A partir da versão 4.2 do shell mongo, você pode usar o método passwordPrompt() em conjunto com vários métodos/comandos de autenticação/gerenciamento de usuário para solicitar a senha em vez de especificar a senha diretamente na chamada de método/comando. No entanto, você ainda pode especificar a senha diretamente como faria com versões anteriores do shell mongo .

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

Digite a senha quando solicitado.

← Gerenciar usuários e roles