db.auth()
Nesta página
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/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 shellmongo
.Se você utilizar a sintaxe do
db.auth(<username>, <password>)
e omitir a senha, o usuário será solicitado a inserir uma senha.
Sintaxe
O db.auth()
tem os seguintes formatos 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:
DicaVocê pode usar o método Ao usar a sintaxe do documento do usuário, você não pode omitir o |
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/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.
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