MongoDB Atlas-Ruby连接在Kubernetes内部不起作用

时间:2019-08-14 22:44:01

标签: ruby mongodb kubernetes aws-eks eks

我有一个连接到MongoDB Atlas的Ruby脚本,用于获取一些数据。如果我做的话,它确实可以正常工作

  1. 在本地运行脚本
  2. 使用docker在本地运行脚本
  3. 在单独的AWS EC2实例中运行脚本
  4. 在单独的AWS EC2实例中的docker中运行脚本
  5. 使用minikube在本地群集中运行脚本。

但是,它在kubernetes中不起作用,我正在使用EKS。

我已经尝试过列出的所有项目,并确保该用户位于MongoDB Atlas上。

这几乎是我收到的输出:

User moon (mechanism: scram) is not authorized to access test (used mechanism: SCRAM-SHA-1) (Mongo::Auth::Unauthorized)

我将不胜感激。

2 个答案:

答案 0 :(得分:0)

我发现了什么

用户权限配置丢失了:

根据文档: Create a MongoDB User for Your Cluster

  

您必须创建一个MongoDB用户才能访问您的部署。为了安全起见,Atlas要求客户端以MongoDB用户身份进行身份验证才能访问群集。

     

MongoDB用户与Atlas用户是分开的:

     

MongoDB用户可以访问Atlas中托管的数据库。   Atlas用户可以登录Atlas,但无权访问MongoDB数据库。

希望获得帮助。

答案 1 :(得分:0)

通过在连接字符串中添加&authSource=admin来解决。