MongoDB 用戶認證

添加管理員:

> 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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章