db.auth()
Definição
db.auth()
Permite que um usuário autentique no banco de dados a partir do shell.
Dica
Você pode usar o método
passwordPrompt()
em conjunto com vários métodos e comandos de gerenciamento de autenticação de usuário para solicitar a senha em vez de especificar a senha diretamente na chamada de método ou comando. No entanto, você ainda pode especificar a senha diretamente como faria com versões anteriores do shellmongo
.Se você utilizar a sintaxe do
db.auth(<username>, <password>)
e omitir a senha, o usuário será solicitado a inserir uma senha.
Compatibilidade
Esse método está disponível em implantações hospedadas nos seguintes ambientes:
MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
Importante
Este comando não é suportado em clusters M0, M2 e M5 . Para obter mais informações, consulte Comandos não suportados.
MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB
MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB
Sintaxe
O db.auth()
possui as seguintes formas de sintaxe:
db.auth(<username>, <password>)
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 document>)
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:
|
mechanism | string | Opcional. O Para mecanismos disponíveis, consulte Se não for especificado, usa o comando |
digestPassword | booleano | Opcional. Determina se a senha fornecida deve ou não ser pré-hash antes de ser usada com o mecanismo de autenticação especificado.
O valor padrão é |
- Devoluções
db.auth()
retorna0
quando a autenticação não for bem-sucedida e1
quando a operação for bem-sucedida.
Comportamento
Desconexão do cliente
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
.
Exemplo
Dica
Você pode usar o método passwordPrompt()
em conjunto com vários métodos e comandos de gerenciamento de autenticação de usuário para solicitar a senha em vez de especificar a senha diretamente na chamada de método ou 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.
Autenticar após conectar-se ao Shell
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 totalmente o valor password
para solicitar que o usuário 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á utilizar 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.
Autenticar ao conectar ao shell
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