authSource 在 mongo 数据库 url 中是啥意思?
Posted
技术标签:
【中文标题】authSource 在 mongo 数据库 url 中是啥意思?【英文标题】:What does authSource means in mongo database url?authSource 在 mongo 数据库 url 中是什么意思? 【发布时间】:2017-03-29 06:23:40 【问题描述】:我正在尝试使用以下连接字符串连接到我的 mongo 数据库
var Mongo_url = 'mongodb://MyUSer:tech@localhost:27017/chatme?authSource=admin';
我收到错误
assertionError: null == [MongoError: Authentication failed.]
name: 'MongoError',
message: 'Authentication failed.',
ok: 0,
code: 18,
谁能帮我清除这个“authSource=admin”的东西。
【问题讨论】:
【参考方案1】:这是包含用户凭据集合的数据库的名称。
https://docs.mongodb.com/manual/reference/connection-string/#connections-connection-options
这是设置用户名和密码的地方。
【讨论】:
我的用户在 system.users 集合中。因此,根据您的说法,“authSource=admin”应该替换为 authSource=users。对吗?? 不,这是数据库的名称,而不是集合的名称。它默认为您尝试连接的数据库。不带参数也行吗? 是的,它也可以在没有参数的情况下工作。我现在明白了。谢谢【参考方案2】:我今天花了几个小时试图解决这个问题,不幸的是,这个 SO 帖子没有出现在我的搜索中。那太糟糕了,因为这是对问题有最佳答案的帖子。
我希望通过添加我收到的错误消息来帮助下一个人。
我正在通过 docker-compose yaml 文件启动的 Docker 容器内设置连接。用户名和密码从 .env 文件传递到 docker-compose。
有效的连接 URI
mongodb://aUser:aPassword@mevn-app-mongo:27017/myDb?authSource=admin
错误:
SASL SCRAM-SHA-1 authentication failed for aUser on myDb from client 172.25.0.3:37352 ; UserNotFound: Could not find user aUser@myDb
【讨论】:
我在使用 NON-URL-ENCODED Connection SRV String 时收到此错误 就我而言,我试图以“root”身份登录特定数据库,但身份验证失败。在连接字符串的末尾添加“authSource=admin”修复了它,谢谢!以上是关于authSource 在 mongo 数据库 url 中是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章