Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs 菜单
Docs 主页
/ / /
Pymongo 驱动程序
/ /

SCRAM

Salted 挑战响应身份验证机制 (SCRAM) 是一系列身份验证机制,它们使用质询-响应机制对用户进行身份验证。SCRAM-SHA-256(使用 SHA-256算法对密码进行哈希处理)是MongoDB Server 4.0 及更高版本中的默认身份验证机制。 SCRAM-SHA-1 改用 SHA-1算法,是早于 4.0 的MongoDB Server版本中的默认身份验证机制。

您可以使用SCRAM对MongoDB Atlas、 MongoDB Enterprise Advanced和MongoDB Community Edition进行身份验证。

提示

SCRAM 机制

要学习;了解有关SCRAM系列身份验证机制的更多信息,请参阅 Wikipedia 上的 RFC5802 Salted 挑战响应身份验证机制。

有关SCRAM的MongoDB实施的更多信息,请参阅MongoDB Server手册中的SCRAM 。

本页上的代码示例使用以下占位符:

  • +srv:仅当您连接到MongoDB Atlas 群集时,才在连接字符串前缀中包含此选项。 要学习;了解有关+srv 选项的更多信息,请参阅MongoDB Server手册中的连接字符串格式。

  • <db_username>:要进行身份验证的用户的MongoDB用户名。

  • <db_password>:要进行身份验证的用户的MongoDB密码。

  • <hostname>: MongoDB 部署的网络解决。

  • <port>: MongoDB 部署的端口号。 如果省略此参数,驾驶员将使用默认端口号 (27017)。 连接MongoDB Atlas 群集时无需端口号。

  • <authenticationDb>:包含用户身份验证数据的 MongoDB 数据库。 如果省略此参数,驾驶员将使用默认值 admin

  • <authenticationMechanism>:设置为 SCRAM-SHA-1SCRAM-SHA-256

要使用本页上的代码示例,请将这些占位符替换为您自己的值。

重要

百分比编码

您必须 用户名和密码,然后再将其包含在 MongoDB URI 中。quote_plus()方法,可在 urllib.parse 模块,是执行此任务的一种方法。例如,调用 quote_plus("and / or") 会返回string and+%2F+or

将用户名或密码作为参数传递给MongoClient时,不要对用户名或密码进行百分号编码。

要使用SCRAM进行身份验证,请将 authMechanism 连接选项设立为 SCRAM-SHA-1SCRAM-SHA-256。 您可以通过两种方式设立此选项:将参数传递给 MongoClient 构造函数,或通过连接字符串中的参数。

client = pymongo.MongoClient("mongodb[+srv]://<hostname>:<port>",
username="<db_username>",
password="<db_password>",
authSource="<authenticationDb>",
authMechanism="<authenticationMechanism>")
uri = ("mongodb[+srv]://<percent-encoded db_username>:<percent-encoded db_password>"
"@<hostname>:<port>/?"
"authSource=<authenticationDb>"
"&authMechanism=<authenticationMechanism>")
client = pymongo.MongoClient(uri)

要了解有关在 PyMongo 中对应用程序进行身份验证的更多信息,请参阅以下 API 文档:

后退

身份验证

在此页面上