如何为 mongodb 2.4.1 设置正确的授权。 我的设置似乎不起作用。 副本成员配置:
dbpath = /vol/data/mongodb/
# logfile
logpath = /var/log/mongodb/mongodb.log
logappend = true
# socket
bind_ip = 0.0.0.0
port = 27018
# replication
replSet = <%= hostname[14,4] %>
# authentication
keyFile = /etc/mongodb.pass
# turn off legacy privilege mode
setParameter = supportCompatibilityFormPrivilegeDocuments=false
setParameter = textSearchEnabled=false
# turn off authorization
auth = true
添加用户授权后:
> use admin
> db.addUser( { user: "admin", pwd: "xxx", roles: [ "userAdminAnyDatabase", "readWriteAnyDatabase", "dbAdminAnyDatabase" ] } )
我无法访问 rs.* 命令。
> use admin
> db.auth('admin','xxx')
1
> rs.status()
{ "ok" : 0, "errmsg" : "unauthorized" }
最佳答案
我也在处理同样的问题。我有一个解决方案。
关闭身份验证
1.创建具有root权限的用户
Root 权限会产生对数据库的读写访问权限,而 userAdminAnyDatabase 角色则不会。
use admin
db.createUser( {
user: "root",
pwd: "pass",
roles: [ { role: "root", db: "admin" } ]
});
开启授权
2.以root用户登录
mongo -u root --authenticationDatabase admin -p
然后你就可以执行你的命令了。
希望这会有所帮助:)
关于MongoDB 2.4 副本集授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16034373/