用于保护 MongoDB 的 Rocketchat 连接
Rocketchat connection to secure MongoDB
我正在尝试保护 mongodb 添加了一个具有权限的 rocketchat 用户,这是查询结果:
rs01:PRIMARY> use admin
rs01:PRIMARY> show users
{
"_id" : "admin.rocketchatuser",
"user" : "rocketchatuser",
"db" : "admin",
"customData" : {
},
"roles" : [
{
"role" : "readWrite",
"db" : "admin"
},
{
"role" : "readWrite",
"db" : "local"
},
{
"role" : "dbOwner",
"db" : "rocketchat"
}
]
}
这是我的连接字符串:
MONGO_OPLOG_URL=mongodb://rocketchatuser:mypassword@localhost:27017/local?authSource=admin&replSet=rs01
MONGO_URL=mongodb://rocketchatuser:mypassword@localhost:27017/rocketchat?authSource=admin
这里是 mongodb 日志:
Unauthorized: not authorized on rocketchat to execute command
但仍然收到连接被拒绝的错误。
有什么想法吗?
最后,我在 this guide 中的 re-follow 指令和从 Rocket.Chat 服务启用日志记录后解决了问题,发现它需要授予 rocketuser 在 admin 上拥有角色 clusterMonitor数据库:
db.runCommand({ grantRolesToUser: "rocketchatuser" , roles: [{role: "clusterMonitor", db: "admin"}]})
授权用户后,它连接并开始 运行 成功。
我正在尝试保护 mongodb 添加了一个具有权限的 rocketchat 用户,这是查询结果:
rs01:PRIMARY> use admin
rs01:PRIMARY> show users
{
"_id" : "admin.rocketchatuser",
"user" : "rocketchatuser",
"db" : "admin",
"customData" : {
},
"roles" : [
{
"role" : "readWrite",
"db" : "admin"
},
{
"role" : "readWrite",
"db" : "local"
},
{
"role" : "dbOwner",
"db" : "rocketchat"
}
]
}
这是我的连接字符串:
MONGO_OPLOG_URL=mongodb://rocketchatuser:mypassword@localhost:27017/local?authSource=admin&replSet=rs01
MONGO_URL=mongodb://rocketchatuser:mypassword@localhost:27017/rocketchat?authSource=admin
这里是 mongodb 日志:
Unauthorized: not authorized on rocketchat to execute command
但仍然收到连接被拒绝的错误。
有什么想法吗?
最后,我在 this guide 中的 re-follow 指令和从 Rocket.Chat 服务启用日志记录后解决了问题,发现它需要授予 rocketuser 在 admin 上拥有角色 clusterMonitor数据库:
db.runCommand({ grantRolesToUser: "rocketchatuser" , roles: [{role: "clusterMonitor", db: "admin"}]})
授权用户后,它连接并开始 运行 成功。