MongoDB建立連線帳號驗證(MongoDB Authentication)

出處:http://blog.kejyun.com/2013/08/Authentication-Connect-MongoDB.html

在安裝完MongoDB後,預設是不用任何帳號密碼就可以對資料庫進行連線,所以任何人都可以對資料庫進行連線取資料,如果是自己在測試用當然沒有什麼問題,但如果是正式使用時,為了保護資料庫的安全,我們還是希望在連線時必須要輸入連線的帳號密碼才可以存取資料庫

登入MONGODB

在命列列輸入mongo登入MongoDB

$ mongo
MongoDB shell version: 2.4.6
connecting to: test
>

使用ADMIN資料庫 

use admin

加入帳號 

加入有讀寫權限的帳號

db.addUser(“帳號”,”密碼”)

加入只有讀取權限的帳號

db.addUser(“帳號”,”密碼” , true)

備註

MongoDB只有分讀取跟寫入兩種權限的使用者

設定需要使用帳號密碼進行連線

使用設定檔設定

修改設定檔/etc/mongodb.conf

在設定檔中找到#auth=true,將井字號註解拿掉,若沒有此行,可自行加入auth=true

重新啟動MongoDB

sudo service mongodb restart


啟動服務時加入需要驗證參數 

mongod –auth


使用帳號密碼登入取資料

使用命令列

登入後進入admin資料庫

$ mongo
MongoDB shell version: 2.4.6
connecting to: test
>use admin

 驗證帳號密碼

db.auth(“帳號”,”密碼”)

驗證正確後會回傳1,表示驗證成功

到test資料庫

use test

取test資料集(Collection)的資料

db.test.find()

使用PHP程式

123456789101112131415161718
<?php
// 連線到MongoDB
$m = new MongoClient("mongodb://帳號:密碼@localhost");
// 選擇資料庫
$db = $m->test;
// 選擇資料集 (collection)
$collection = $db->test;
// 撈取資料
$test = $collection->find();
// 列印結果
foreach ($test as $document) {
var_dump($document);
}
?>

參考資料

未經允許不得轉載:GoMCU » MongoDB建立連線帳號驗證(MongoDB Authentication)