fbpx

MongoDB 3.0 開啟連線認證功能(筆記)


MongoDB 3.0 開啟認證模式

之前有介紹過 MongoDB 2.x 開啟認證模式的方法,如果是使用新的 MongoDB 3.x,設定檔的配置方式有些不同,首先先進入資料庫,透過 db.createUser 建立使用者,如下:

roles 可以指定使用者擁有的權限,詳細的權限直可以參考官方說明。建立好使用者與密碼後,就要來開啟認證模式了,請在 /etc/mongod.conf 加入以下設定:

然後重新啟用 MongoDB

sudo service mongod restart

Mongo Client Sehll Command 指定認證資料庫登入

mongo -u username -p --authenticationDatabase mydb

解決 AuthenticationFailed 問題

再來就可以透過帳密來連線使用囉,實際我透過 Ubuntu Server 14.04 中的 php-mongo 套件與比較新的 MongoDB 3.2 進行連線時,一直發生問題,PHP 噴出以下 Log:

Google 了一下,發現是 MongoDB 的 Schema 比較新造成的認證問題,進入 MongoDB 將 Schema Version 由 5 改成 3,語法如下:

由於以上更新 Schema 需要「__system」權限,建議可以建立一個像是 mysql 中的 root 帳號,才可以大無敵修改 admin 資料庫,如下:

更改 Schema 之後,需要重新建立使用者喔。如下:

這樣就搞定囉!Bye...