在 MongoDB 2.6.5 上,我尝试通过运行此代码在Admin
上创建Admin DB
用户:
use admin
db.createUser(
{
user: "MY_ADMIN_USER",
pwd: "SOME_STROG_PASSWORD",
roles: [ {
role: "userAdminAnyDatabase",
db: "admin"
} ]
}
);
但是当我这样做时,我收到了这个错误:
Error: couldn't add user: not authorized on admin to
execute command
{
createUser: "MY_ADMIN_USER",
pwd: "xxx",
roles: [{
role: "userAdminAnyDatabase",
db: "admin"
}],
digestPassword: false,
writeConcern: {
w:"majority",
wtimeout: 30000.0
}
}
登录我的应用程序的数据库时,我拥有所有权限。
但是在admin db上看起来我没有。
感谢您的回答。
答案 0 :(得分:2)
OK!所以我发现了问题。
如果您遇到类似的问题,可以使用root
凭据进行隔离扫描。
使用root用户时,请运行vi /etc/mongod.conf
以输入配置文件。
将auth
的值设为false。现在要小心,因为这可能是一个重大的安全问题。
我建议你在做这件事时关闭相关的端口..
重新启动mongo服务以应用更改:
sudo service mongod restart
登录您的mongodb admin DB,然后运行创建用户的命令。
db.createUser(
{
user: "MY_ADMIN_USER",
pwd: "SOME_STROG_PASSWORD",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
);
所以现在你可以..
退出, 将auth参数更改回true,然后重新启动mongo服务(并打开我关闭的端口以关闭lol)。