Docs 菜单
Docs 主页
/ /
/ / /

SCRAM 身份验证

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

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

提示

SCRAM 机制

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

有关SCRAM的MongoDB实施的更多信息,请参阅MongoDB服务器手册中的SCRAM

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

  • db_username - 您的MongoDB 数据库用户名。

  • db_password - 您的MongoDB 数据库用户的密码。

  • hostname — 可供客户端访问的 MongoDB Server 的网络地址。

  • port — MongoDB Server的端口号。

  • authenticationDb — 包含用户的身份验证数据的 MongoDB 数据库。如果省略此参数,驱动程序则会使用默认值 admin

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

选择下面的 Connection StringMongoCredential标签页,查看说明和示例代码,以指定SCRAM-SHA-256身份验证机制。

要使用连接字符串默认身份验证机制,请忽略该机制。 用于实例化 MongoClient 的代码应类似于以下内容:

val mongoClient =
MongoClient.create("mongodb://<db_username>:<db_password>@<hostname>:<port>/?authSource=<authenticationDb>")

要使用 MongoCredential 类默认身份验证机制,请使用 createCredential() 方法。 用于实例化 MongoClient 的代码应类似于以下内容:

val credential = MongoCredential.createCredential(
"<db_username>", "<authenticationDb>", "<db_password>".toCharArray()
)
val settings = MongoClientSettings.builder()
.applyToClusterSettings { builder: ClusterSettings.Builder ->
builder.hosts(
listOf(ServerAddress("<hostname>", "<port>"))
)
}
.credential(credential)
.build()
val mongoClient = MongoClient.create(settings)

您还可以显式指定 SCRAM-SHA-256身份验证机制,如以下代码片段所示:

要使用连接字符串指定 SCRAM-SHA-256身份验证机制,请在连接字符串中为 authMechanism 参数分配值 SCRAM-SHA-256。 用于实例化 MongoClient 的代码应类似于以下内容:

val mongoClient =
MongoClient.create("mongodb://<db_username>:<db_password>@<hostname>:<port>/?authSource=<authenticationDb>&authMechanism=SCRAM-SHA-256")

要使用 MongoCredential 类默认身份验证机制,请使用 createScramSha256Credential() 方法。用于实例化 MongoClient 的代码应类似于以下内容:

val credential = MongoCredential.createScramSha256Credential(
"<db_username>", "<authenticationDb>", "<db_password>".toCharArray()
)
val settings = MongoClientSettings.builder()
.applyToClusterSettings { builder: ClusterSettings.Builder ->
builder.hosts(
listOf(ServerAddress("<hostname>", "<port>"))
)
}
.credential(credential)
.build()
val mongoClient = MongoClient.create(settings)

后退

身份验证

在此页面上