Definición
db.auth()Permite a un usuario autenticarse en la base de datos desde la shell.
Tip
Puedes usar el método
passwordPrompt()en conjunto con varios métodos y comandos de gestión de autenticación de usuarios para solicitar la contraseña en lugar de especificar la contraseña directamente en la llamada al método o comando. Sin embargo, aún puedes especificar la contraseña directamente como lo harías con las versiones anteriores del shellmongo.Si utilizas la sintaxis
db.auth(<username>, <password>)y omites la contraseña, se solicitará al usuario que ingrese una contraseña.
Compatibilidad
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.
Sintaxis
El tiene las siguientes formas db.auth() sintácticas:
db.auth(<username>, <password>)
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 document>)
db.auth( { user: <username>, pwd: passwordPrompt(), // Or "<cleartext password>" mechanism: <authentication mechanism>, digestPassword: <boolean> } )
Parameter | Tipo | Descripción |
|---|---|---|
| string | El nombre del usuario con privilegios de acceso para esta base de datos. |
| string | La contraseña del usuario. El valor puede ser:
|
| string | Opcional. El a Para conocer los mecanismos disponibles, Si no se especifica, utiliza el comando |
| booleano | opcional. Determina si la contraseña proporcionada debe ser pre-encriptada antes de usarse con el mecanismo de autenticación especificado.
El valor por defecto es |
- Devuelve
db.auth()devuelve0cuando la autenticación no es exitosa y1cuando la operación es exitosa.
Comportamiento
Desconexión del cliente
Si el cliente que emitiódb.auth()se desconecta antes de que la operación finalice, MongoDB marcadb.auth()para su terminación usandokillOp.
Ejemplo
Tip
Puedes usar el método passwordPrompt() en conjunto con varios métodos y comandos de gestión de autenticación de usuarios para solicitar la contraseña en lugar de especificar la contraseña directamente en la llamada al método o comando. Sin embargo, aún puedes especificar la contraseña directamente como lo harías con las 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.
Autenticación después de conectar con el Shell
Para autenticarse después de mongosh conectarse, ejecute en la db.auth() basede datos de autenticación del 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 su conexión especifica la --apiStrict opción, no podrá utilizar 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.
Autenticarse al conectarse a la Shell
Alternativamente, puede usar las opciones de línea de comandos--username, --password, --authenticationDatabasey--authenticationMechanismdemongoshpara especificar las credenciales de autenticación al conectarsemongosh:
mongosh --username "myTestDBUser" --password --authenticationDatabase test --authenticationMechanism SCRAM-SHA-256