📜  如何在 MongoDB 上启用身份验证?

📅  最后修改于: 2022-05-13 01:56:58.271000             🧑  作者: Mango

如何在 MongoDB 上启用身份验证?

在 MongoDB 部署上启用访问控制时强制执行身份验证,要求用户识别自己。在访问启用了访问控制的 MongoDB 部署时,用户只能执行由其角色定义的活动。

以下教程使用默认身份验证方法在单独的 mongo 实例上提供访问控制。有关所有支持的身份验证机制的列表,请参阅身份验证技术。

用户管理员

如果启用了访问控制,请确保 admin 数据库具有具有 userAdmin 或 userAdminAnyDatabase 角色的用户。此用户具有管理用户和角色的能力,包括创建新用户、授予或撤销现有用户角色以及创建或更改自定义角色的能力。

注: MongoDB实例使用27017端口,数据位置为/var/lib/mongodb。该示例假设 数据目录的存在,即/var/lib/mongodb。并根据需要指定不同的数据目录。

要访问或更改数据库,MongoDB 默认不需要登录名或密码。应启用和配置强制身份验证。



按照下面提到的命令启用身份验证:

第 1 步:打开一个 Mongo Shell

mongo

第 2 步:数据库 binstar 必须能够读取和写入存储库。要建立管理员用户和服务用户,请在 MongoDB shell 中运行以下命令:

use admin

第 3 步:要管理数据库用户,请创建一个管理用户:

db.createUser({user:'siteUserAdmin', pwd: '', 
               roles:['userAdminAnyDatabase']})

第 4 步:要验证密码,请以该用户身份登录:

db.auth('siteUserAdmin', '')

第 5 步:创建一个 Repository 服务用户:

db.createUser({user:'spandan', pwd: '', 
               roles:[{db:'binstar', role:'readWrite'}]})

步骤 6:在 MongoDB 中,启用所需的身份验证:

  • 如果您使用的是经典的 MongoDB 配置格式,请将 auth 密钥添加到 /etc/mongod.conf:
auth=true
  • 如果您使用当前的 MongoDB 配置格式,请将 security.authorization 密钥添加到 /etc/mongod.conf:
security:
    authorization: enabled

步骤 7:要重新加载设置,请重新启动 MongoDB:

sudo service mongod restart

步骤 8:将 Repository 配置文件中的 MONGO URL 选项设置为 mongodb:/username:password@hostname>。

第九步:修改配置文件后重启Repository,查看修改生效。

本地主机的例外

可以在激活访问控制之前或之后创建用户。如果您在建立任何用户之前激活访问控制,MongoDB 支持 localhost 异常。这允许您在 admin 数据库中建立用户管理员。创建用户后,您必须以用户管理员身份登录才能根据需要添加其他用户。