Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

db.auth()

在此页面上

  • 定义
  • 兼容性
  • 语法
  • 行为
  • 例子
db.auth()

允许用户从 Shell 内对数据库进行身份验证。

提示

您可以将 passwordPrompt()方法与各种用户身份验证/管理方法/命令结合使用,以提示输入密码,而不是直接在方法/命令调用中指定密码。不过,您仍然可以像使用早期版本的mongo Shell 一样直接指定密码。

如果使用db.auth(<username>, <password>)语法并省略密码,系统将提示用户输入密码。

此方法可用于以下环境中托管的部署:

  • MongoDB Atlas :用于在云中部署 MongoDB 的完全托管服务

重要

M 0 、M 2和 M 5集群不支持此命令。有关更多信息,请参阅不支持的命令。

db.auth() 采用以下语法形式:

您可以执行以下任一操作:

  • 省略密码以提示用户输入密码:

    db.auth( <username> )
  • 使用 passwordPrompt() 提示用户输入密码:

    db.auth( <username>, passwordPrompt() )
  • 指定明文密码。

    db.auth( <username>, <password> )
db.auth( {
user: <username>,
pwd: passwordPrompt(), // Or "<cleartext password>"
mechanism: <authentication mechanism>,
digestPassword: <boolean>
} )
参数
类型
说明
user
字符串
对该数据库具有访问特权的用户的名称。
pwd
字符串

用户的密码。该值可为以下任一项:

  • 以明文字符串表示的用户密码,或

  • passwordPrompt() 提示输入用户密码。

提示

您可以将 passwordPrompt() 方法与各种用户身份验证/管理方法/命令结合使用,以提示输入密码,而不是直接在方法/命令调用中指定密码。不过,您仍然可以像使用早期版本的 mongo shell 一样直接指定密码。

使用用户文档事务语法时,不能省略pwd

mechanism
字符串

可选。要使用的 authentication mechanism

有关可用机制,请参阅 authentication mechanisms

如果未指定,则使用hello命令确定指定用户的 SASL 机制。请参阅saslSupportedMechs

digestPassword
布尔

可选。确定所提供的密码在与指定的身份验证机制一起使用之前是否应进行预哈希处理。

  • 对于 SCRAM-SHA-1,尽管您可以指定 true,但将此值设置为 true 并不能提高安全性,并且可能会干扰使用其他机制的档案。

  • 对于所有其他方法,该值均须设为 false(默认值)。任何其他值均会导致身份验证失败,因为这些方法无法理解 MongoDB 预哈希操作。

默认值为 false

注意

mongosh会从保存的历史记录中排除所有db.auth()操作。

返回:
db.auth() 在身份验证成功时返回 0,并在操作成功时返回 1

从 MongoDB 4.2 开始,如果在操作完成之前,发出 db.auth() 的客户端断开连接,MongoDB 将使用killOpdb.auth() 标记为终止。

提示

您可以将 passwordPrompt() 方法与各种用户身份验证/管理方法/命令结合使用,以提示输入密码,而不是直接在方法/命令调用中指定密码。不过,您仍然可以像使用早期版本的 mongo shell 一样直接指定密码。

如果使用db.auth(<username>, <password>)语法并省略密码,系统将提示用户输入密码。

要在连接mongosh 后进行身份验证,请在用户的身份验证数据库中发出 db.auth()

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

您可以完全省略 password 值,以便提示用户输入密码:

use test
db.auth( "myTestDBUser" )

从 MongoDB 5开始。 0 ,如果您的连接指定了--apiStrict选项,则您不能使用db.auth()方法:

  • 在同一数据库上以同一用户身份再次进行身份验证。

  • 使用与之前在同一数据库上进行身份验证时不同的用户来进行身份验证。

  • 先前在不同数据库上进行身份验证后,使用新数据库进行身份验证。

或者,您可以使用mongosh的命令行选项--username--password--authenticationDatabase--authenticationMechanism在连接mongosh时指定身份验证档案:

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

后退

用户管理

来年

db.changeUserPassword