【发布时间】:2015-03-03 07:28:03
【问题描述】:
我从 MongoDB 开始,我想通过用户/传递对 dbs 的访问。 我做的第一件事是创建和管理用户并使用 auth activate 启动 mongodb,这是我创建的用户:
db.getUser("admin")
{
"_id" : "admin.admin",
"user" : "admin",
"db" : "admin",
"roles" : [
{
"role" : "dbAdminAnyDatabase",
"db" : "admin"
},
{
"role" : "clusterAdmin",
"db" : "admin"
}
] }
}
之后,我尝试使用以下命令创建用户:
use newdb
db.createUser(
{
user: "newuser",
pwd: "12345678",
roles: [ { role: "readWrite", db: "newdb" } ]
}
)
但是我收到了这个错误:
错误:无法添加用户:未在 newdb 上授权执行命令 { createUser:“newuser”,密码:“xxx”,角色:[{角色:“readWrite”,db: “newdb”}],digestPassword:假,writeConcern:{ w:“多数”, wtimeout: 30000.0 } } 在 src/mongo/shell/db.js:1004
我用谷歌搜索过,但只有两个结果,一个是中文的,另一个是不相关的,所以我有点迷茫。任何想法 ?看起来我的管理员用户没有权限,我使用以下命令访问 mongodb:
$mongo --port 27017 -u adminUser -p adminPass --authenticationDatabase admin
提前致谢。
【问题讨论】:
-
您没有在管理员用户中包含
userAdmin/userAdminAnyDatabase角色。dbAdminAnyDatabase和clusterAdmin不包括用户管理权限。 -
这就是问题所在。嗯,那是我第一次接触 mongodb :) 非常感谢!
-
对我来说“使用管理员”命令很有帮助,因为我一开始没有选择数据库
标签: mongodb