2011-06-13

MongoDB 如何啟用使用者認證 (Authentication) 功能 ?

MongoDB 預設並沒有啟用認證功能 (Authentication),而且,也沒有預設的超級使用帳號,所以,在預設的情況下,是任何人都可以連線到 MongoDb Server 來取資料的,如果你和阿舍一樣,想要有登入帳號才可以存取的話,第一步,要先建立一個最高權限的管理者帳號,請用在 MongoDB Shell 執行下面這二行的指令。 ( 請把“帳號名稱" 和“密碼"換成你想要設定的帳號名稱和密碼,雙引號是要有的哩 ! 而且,大小寫是有差的)

use admin
db.addUser(“帳號名稱",“密碼")

完成之後,第二步,請把 MongoDB 給 Shutdown 後,再用下面的指令來啟動  MongoDB,如果沒有加上 "—auth” 這個參數,那麼就算是有建立 admin 資料庫的使用者也是沒有用的哩 !

mongod --auth

MongoDB 啟動完成之後,再用  MongoDB Shell 連上之後,就要下面的指令才能夠對 admin 這個資料庫做查詢和修改。

use admin
db.auth(“帳號名稱",“密碼")

至於個別的資料庫,做法和 admin 這個資料庫是一樣的,以阿舍的 arthurtoday 這個資料庫要加入 ayubiz 這個使用者帳號為例,操作指令如下:

use arthurtoday
db.addUser(“ayubiz",“12345678”)

如果,只想讓某個帳號只有讀取的權限,那就用下面的這個方式來新增帳號。

db.addUser(“guest",“123”,true)

這大概就是 MongoDb 的權限的全部了,MongoDB 目前只有提供簡單的權限控管,只有可以讀寫和唯讀二個帳號,阿舍是覺得,拿來當做 Web Application 的後端就已經夠用了哩 !

推薦閱讀


有疑問? 問題還是沒解決嗎? 歡迎下方留言提問和討論 😁

3 則留言 :

Toomore Chiang 提到...

最後一個指令有錯!

Arthur 提到...

Hello,

已修正。謝謝 !!

tom 提到...

請問有沒辦法在mongod -- 的時候就設置好admin的帳號密碼?

張貼留言

歡迎留言提問和討論 .... 😁