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

db.auth()

在此页面上

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

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

提示

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

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

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

重要

MongoDB Atlas集群不支持此命令。 有关Atlas支持所有命令的信息,请参阅 不支持的命令。

  • MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本

  • MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本

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>
} )
Parameter
类型
说明

user

字符串

对该数据库具有访问特权的用户的名称。

pwd

字符串

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

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

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

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

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

后退

用户管理