Docs Menu
Docs Home
/ /
Gestión de usuarios

db.auth() (método de mongosh)

db.auth()

Permite a un usuario autenticarse en la base de datos desde la shell.

Tip

Puede utilizar el El método passwordPrompt() junto con varios métodos/comandos de gestión/autenticación de usuarios para pedir la contraseña en vez de especificarla directamente en la llamada al método/comando. Sin embargo, aún puedes especificar directamente la contraseña como lo harías con versiones anteriores del shell mongo.

Si utilizas la sintaxis db.auth(<username>, <password>) y omites la contraseña, se solicitará al usuario que ingrese una contraseña.

Este método está disponible en implementaciones alojadas en los siguientes entornos:

Importante

Este comando no es compatible con los clústeres de MongoDB Atlas. Para obtener información sobre el soporte de Atlas para todos los comandos, consulta Comandos no compatibles.

  • MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.

La db.auth() tiene las siguientes formas de sintaxis:

Puedes:

  • Omitir la contraseña para solicitar al usuario que ingrese una contraseña:

    db.auth( <username> )
  • Utiliza passwordPrompt() para solicitar al usuario que introduzca una contraseña:

    db.auth( <username>, passwordPrompt() )
  • Especifica una contraseña en texto claro.

    db.auth( <username>, <password> )
db.auth( {
user: <username>,
pwd: passwordPrompt(), // Or "<cleartext password>"
mechanism: <authentication mechanism>,
digestPassword: <boolean>
} )
Parameter
Tipo
Descripción

user

string

El nombre del usuario con privilegios de acceso para esta base de datos.

pwd

string

La contraseña del usuario. El valor puede ser:

  • la contraseña del usuario en string de texto sin formato, o

  • passwordPrompt() para solicitar la contraseña del usuario.

Tip

Puedes utilizar el método passwordPrompt() junto con varios métodos/comandos de autenticación/gestión de usuarios para solicitar la contraseña en lugar de especificarla directamente en la llamada del método/comando. Sin embargo, todavía puedes especificar la contraseña directamente como lo harías con versiones anteriores del shell de mongo.

Al usar la sintaxis de documentos del usuario, no puedes omitir el pwd.

mechanism

string

opcional. El authentication mechanism para usar.

Para los mecanismos disponibles, consulta authentication mechanisms.

Si no se especifica, utiliza el comando hello para determinar el mecanismo o mecanismos SASL para el usuario especificado. Ver saslSupportedMechs.

digestPassword

booleano

opcional. Determina si la contraseña proporcionada debe ser pre-encriptada antes de usarse con el mecanismo de autenticación especificado.

  • Para SCRAM-SHA-1, aunque puedes especificar true, establecer este valor en true no mejora la seguridad y puede interferir con credenciales que utilicen otros mecanismos.

  • Para todos los demás métodos, este valor debe establecerse en false (valor por defecto). Cualquier otro valor resultará en un fallo de autenticación, ya que esos métodos no comprenden el pre-hash de MongoDB.

El valor por defecto es false.

Nota

mongosh excluye todas las db.auth() operaciones del historial guardado.

Devuelve
db.auth() devuelve 0 cuando la autenticación no es exitosa, y 1 cuando la operación tiene éxito.

Si el cliente que emitió db.auth() se desconecta antes de que la operación se complete, MongoDB marca db.auth() para su terminación usando killOp.

Tip

Puedes utilizar el método passwordPrompt() junto con varios métodos/comandos de autenticación/gestión de usuarios para solicitar la contraseña en lugar de especificarla directamente en la llamada del método/comando. Sin embargo, todavía puedes especificar la contraseña directamente como lo harías con versiones anteriores del shell de mongo.

Si utilizas la sintaxis db.auth(<username>, <password>) y omites la contraseña, se solicitará al usuario que ingrese una contraseña.

Para autenticar después de conectar mongosh, emite db.auth() en la base de datos de autenticacióndel usuario:

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

Puedes omitir por completo el valor password para pedir al usuario que introduzca su contraseña:

use test
db.auth( "myTestDBUser" )

A partir de MongoDB 5.0, si tu conexión especifica la opción --apiStrict, no puedes usar el método db.auth() para:

  • Autentícate de nuevo como el mismo usuario en la misma base de datos.

  • Autentícate como un usuario diferente cuando anteriormente se haya autenticado en la misma base de datos.

  • Autenticar con una nueva base de datos después de haberse autenticado previamente en una base de datos diferente.

También puedes utilizar las opciones de línea de comandos de mongosh, como --username, --password, --authenticationDatabase y --authenticationMechanism, para especificar las credenciales de autenticación al conectarte a mongosh:

mongosh --username "myTestDBUser" --password --authenticationDatabase test --authenticationMechanism SCRAM-SHA-256

Volver

Gestión de usuarios

En esta página