Szy*_*cki 5 mongodb mongodb-shell
如何为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
Run Code Online (Sandbox Code Playgroud)
添加用户授权后:
> use admin
> db.addUser( { user: "admin", pwd: "xxx", roles: [ "userAdminAnyDatabase", "readWriteAnyDatabase", "dbAdminAnyDatabase" ] } )
Run Code Online (Sandbox Code Playgroud)
我无法访问rs。*命令。
> use admin
> db.auth('admin','xxx')
1
> rs.status()
{ "ok" : 0, "errmsg" : "unauthorized" }
Run Code Online (Sandbox Code Playgroud)
小智 1
我认为如果你有复制集,你需要使用 keyFile。
摘自http://docs.mongodb.org/manual/tutorial/enable-authentication/ :
使用 auth 或 keyFile 设置启用身份验证。对独立实例使用 auth,对副本集和分片集群使用 keyFile。keyFile 意味着身份验证,并允许 MongoDB 部署的成员在内部进行身份验证。