我在本地主机中有一个启用了安全性的 mongo 实例。和用户如下,
db.createUser(
{
user: "mongouser",
pwd: "pass",
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "clusterAdmin", db: "admin" }
]
});
我正在尝试使用 mgo
连接到名为 testDatabase
的数据库,如下所示
mongoConnectionUrl = "mongodb://mongouser:pass@localhost
if mgoSession == nil {
var err error
mgoSession, err = mgo.Dial(mongoConnectionUrl)
if err != nil {
return nil, err
}
}
但是运行代码时mongo日志显示如下错误
2017-09-21T12:05:46.496+0530 I ACCESS [conn1] Unauthorized: not authorized on testDatabase to execute command { find: "metrics", filter: { type: 1 }, skip: 0 }
感谢任何帮助
最佳答案
您需要按如下方式授予对当前数据库的读/写访问权限:
db.createUser(
{
user: "mongouser",
pwd: "pass",
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "clusterAdmin", db: "admin" },
"readWrite"
]
});
关于mongodb - Mongo 授权数据库失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46337297/