我在我的AWS上的Ec2实例上安装了mongodb社区版。安装顺利,我能够运行mongo命令。
然后我按照本教程:https://ianlondon.github.io/blog/mongodb-auth/
为了创建用户和数据库。然后我在我的aws安全组上为此实例打开了端口27017。
我一直尝试使用我创建的用户和数据库以及密码连接到我的新数据库但是它不会让我。我正在使用Robo 3T进行连接。
我使用此代码创建了我的用户:
use build_db
db.createUser({
user: 'admin',
pwd: 'secretpassword',
roles: [{ role: 'readWrite', db:'build_db'}]
});
当我在终端mongo中键入show users命令时,我发现此错误 "错误:未经过测试授权执行命令{usersInfo:1.0,$ db:" test" }: "
任何人都知道如何通过Robo 3T连接和工作。在此先感谢!
更新:现在好像我甚至无法连接到mongo shell。
我收到此错误:
MongoDB shell version v3.6.4
connecting to: mongodb://127.0.0.1:27017
2018-04-27T22:13:41.983+0000 W NETWORK [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: Connection refused
2018-04-27T22:13:41.983+0000 E QUERY [thread1] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed :
connect@src/mongo/shell/mongo.js:251:13
@(connect):1:6
exception: connect failed
答案 0 :(得分:0)
readWrite权限相当有限,很可能是您无法通过终端(https://docs.mongodb.com/manual/reference/built-in-roles/#readWrite)执行users命令的原因。
如果此用户具有管理员权限,您可能希望将该角色设置为dbOwner(https://docs.mongodb.com/manual/reference/built-in-roles/#dbOwner)。
答案 1 :(得分:0)
我现在已经为面临前进的其他人解决了这个问题!连接的最佳方法是将数据库URL设置为本地主机。然后将SSH密钥和信用添加到ssh隧道部分。我未选中用户区。能够通过Robo 3T成功连接!希望这可以帮助任何未来面临这个问题的人。