添加管理員:
> db.createUser(
{
user:"root",
pwd:"password",
roles:[
{role:"root",db:"admin"}
]
})
Successfully added user: {
"user" : "root",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}
修改mongod.conf配置文件,添加一行:auth=true,然後重啓數據庫。
再次嘗試登錄:
[root@localhost ~]# mongo
MongoDB shell version: 2.6.11
connecting to: test
> show collections
2015-10-09T17:05:29.192+0800 error: {
"$err" : "not authorized for query on test.system.namespaces",
"code" : 13
} at src/mongo/shell/query.js:131
>
此處出現錯誤。可以通過下面步驟正確使用mongodb:
> use admin
switched to db admin
> db.auth("root","password")
1
> use libraray
switched to db libraray
> show collections
audit
fs.chunks
fs.files
media
system.indexes
> db.media.find()
{ "_id" : ObjectId("561616d162e036b93305b524"), "Type" : "Book", "Title" : "Definitive Guide to MongoDB 2nd ed.
對於GridFS的mongofiles客戶端來說最好創建一個額外的用戶,否則將無法查詢相關文件。
db.createUser(
{
user:"libraray",
pwd:"password",
roles:[
{role:"readWrite",db:"libraray"}
]
})
[root@localhost ~]# mongofiles search zip -d libraray -u "libraray" -p "password"
connected to: 127.0.0.1
2290944.zip 3372909855
如果使用root用戶:
[root@localhost ~]# mongofiles search zip -d libraray -u "root" -p "password"
connected to: 127.0.0.1
assertion: 18 { ok: 0.0, errmsg: "auth failed", code: 18 }
或者使用authenticationDatabase選項,如:
[root@localhost ~]# mongofiles search zip -d libraray -u "root" -p "password" --authenticationDatabase admin
connected to: 127.0.0.1
2290944.zip 3372909855