Mongo Authsource

Mongo Authsource

Mongo Authsource

MongoDB 中,authsource 是用来指定用户验证的数据库。当我们创建用户并启用权限认证后,需要在连接数据库时指定相应的 authsource。本文将详细介绍如何在连接 MongoDB 数据库时指定 authsource,并演示在不同情况下的使用方法。

什么是 authsource

在 MongoDB 中,authsource 是用来指定用户验证的数据库。默认情况下,如果没有指定 authsource,则 MongoDB 会尝试在 admin 数据库中查找用户并进行验证。

在实际生产环境中,通常会为不同的数据库创建不同的用户,并将这些用户的信息保存在各自的数据库中。因此,在连接数据库时,需要明确指定要在哪个数据库中查找用户信息进行验证。

如何指定 authsource

在连接 MongoDB 数据库时,可以通过指定 authsource 参数来明确指定用户验证的数据库。通常情况下,我们会在连接字符串中添加 authsource 参数,如下所示:

mongodb://username:password@hostname:port/databasename?authSource=admin

在上面的连接字符串中,authSource=admin 表示要在 admin 数据库中查找用户并进行验证。如果要在其他数据库中进行用户验证,则将 admin 替换为相应的数据库名称即可。

示例演示

创建用户和角色

首先,我们需要在 MongoDB 中创建用户和角色。假设我们要在 test 数据库中创建一个名为 testuser 的用户,并给予 readWrite 权限。

在 MongoDB shell 中执行以下命令创建用户和角色:

use test
db.createUser({
  user: "testuser",
  pwd: "password",
  roles: [
    { role: "readWrite", db: "test" }
  ]
})

启用权限认证

接下来,我们需要在 MongoDB 配置文件中启用权限认证。在配置文件中添加以下内容:

security:
  authorization: enabled

然后重启 MongoDB 服务使配置生效。

连接数据库

现在,我们可以使用以下连接字符串连接数据库,并指定 authsource 为 test:

mongodb://testuser:password@localhost:27017/test?authSource=test

如果一切正常,应该成功连接到 test 数据库并能够执行相应的操作。

结论

在 MongoDB 中,authsource 参数是非常重要的,特别是在多个数据库中有不同用户时。通过指定正确的 authsource,可以确保连接到正确的数据库并进行用户验证。务必在生产环境中合理使用 authsource 参数,以确保系统安全性和数据完整性。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程