標籤:
mongodb2.6的許可權管理與2.4有很大不同,網上能看到的文章基本都是基於2.4以下的,很多並不適用。經過一番摸索終於理順了2.6的許可權管理,做下筆記。
我所用的版本是Linux 64-bit,:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.6.tgz
mongodb預設不啟用許可權管理,訪問不需要驗證。要開啟許可權管理功能,啟動時增加--auth參數。
啟用後,資料庫中還沒有任何的使用者,此時非本機用戶端訪問會提示錯誤
在資料庫還沒有任何使用者的情況下,只能通過本機登入進行維護
通過以下命令先給資料庫增加個管理員。2.4及之前的版本是用的addUser命令,2.6之後用createUser。
use admin
db.createUser( { "user" : "admin",
"pwd": "admin",
"roles" : [ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" }
]
})
建議先切換到admin庫,不然建立的admin使用者會在別的庫下面。
建立了第一個使用者之後,本機也必須先登入才能使用資料庫了。用另外一個shell登入,會報錯。
原來已經串連的用戶端也不能進行操作了。
此時需要先登入,用db.auth(user, password) 命令,返回1表示認證通過。
db.system.users.find()或show users可以查詢到我們剛新增的admin使用者。
如果建立admin使用者時是在別的庫,例如test,這時查到的使用者應該是這樣的
差異在_id和db這兩個欄位。使用時的不同,表現在使用者登入時驗證的資料庫。此時在admin庫下登入是不允許的,必須先切換到test庫。
登入後就可以管理任何的資料庫和使用者了。
未完待續…
?
?
?
mongodb 2.6.6 許可權管理