Menu Docs

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

db.auth()

Nesta página

  • Definição
  • Sintaxe
  • Comportamento
  • Exemplo
db.auth()

Permite que um usuário autentique no banco de dados a partir do shell.

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 .

Se você utilizar a sintaxe do db.auth(<username>, <password>) e omitir a senha, o usuário será solicitado a inserir uma senha.

O db.auth() tem os seguintes formulários de sintaxe:

Você também pode:

  • Omitir a senha para solicitar que o usuário insira uma senha:

    db.auth( <username> )
  • Utilize passwordPrompt() para solicitar ao usuário que insira uma senha:

    db.auth( <username>, passwordPrompt() )
  • Especificar uma senha em texto não criptografado.

    db.auth( <username>, <password> )
db.auth( {
user: <username>,
pwd: passwordPrompt(), // Or "<cleartext password>"
mechanism: <authentication mechanism>,
digestPassword: <boolean>
} )
Parâmetro
Tipo
Descrição
user
string
O nome do usuário com privilégios de acesso para este banco de dados.
pwd
string

A senha do usuário. O valor pode ser:

  • a senha do usuário em string de texto não criptografado ou

  • passwordPrompt() para solicitar a senha do 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 .

Ao usar a sintaxe do documento do usuário, você não pode omitir o pwd.

mechanism
string

Opcional. O authentication mechanism para utilizar.

Para mecanismos disponíveis, consulte authentication mechanisms.

Se não for especificado, usa o comando hello para determinar o mecanismo ou mecanismos SASL para o usuário especificado. Consulte saslSupportedMechs.

digestPassword
boleano

Opcional. Determina se a senha fornecida deve ou não ser pré-hash antes de ser usada com o mecanismo de autenticação especificado.

  • Para SCRAM-SHA-1, embora você possa especificar true, configurar este valor para true não melhora a segurança e pode interferir com credenciais utilizando outros mecanismos.

  • Para todos os outros métodos, este valor deve ser definido como false (valor padrão). Qualquer outro valor resultará em falha de autenticação, pois esses métodos não entendem a pré-hashing do MongoDB.

O valor padrão é false.

Observação

mongosh exclui todas as operações do db.auth() do histórico salvo.

Devoluções
db.auth() retorna 0 quando a autenticação não for bem-sucedida e 1 quando a operação for bem-sucedida.

A partir do MongoDB 4.2, se o cliente que emitiu db.auth() se desconectar antes da conclusão da operação, o MongoDB marcará db.auth() para encerramento usando killOp.

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 .

Se você utilizar a sintaxe do db.auth(<username>, <password>) e omitir a senha, o usuário será solicitado a inserir uma senha.

Para autenticar após conectar o mongosh, emita db.auth() no banco de dados de autenticação do usuário:

use test
db.auth( "myTestDBUser", passwordPrompt() )

Você pode omitir o valor password inteiramente para solicitar ao usuário que insira sua senha:

use test
db.auth( "myTestDBUser" )

A partir do MongoDB 5.0, se sua conexão especificar a opção --apiStrict , você não poderá usar o método db.auth() para:

  • Autenticar novamente como o mesmo usuário no mesmo banco de dados.

  • Autenticar como um usuário diferente quando autenticado anteriormente no mesmo banco de dados.

  • Autenticar com um novo banco de dados quando autenticado anteriormente em um banco de dados diferente.

Alternativamente, você pode utilizar as opções de linha de comando do { mongosh --username, --password, --authenticationDatabase e --authenticationMechanism para especificar credenciais de autenticação ao conectar mongosh:

mongosh --username "myTestDBUser" --password --authenticationDatabase test --authenticationMechanism SCRAM-SHA-256
← Métodos de gerenciamento de usuários