為MongoDB 資料庫加上安全密碼

陳鍾誠
程式人月刊
Published in
3 min readJun 6, 2018

MongoDB 開始認證功能

1. 先建立 auth 資料庫的使用者

$ mongo> use admin> db.createUser(... {... user: "你的帳號",... pwd: "你的密碼",... roles: [ { role: "userAdminAnyDatabase", db: "admin"} ]... }... )

然後用下列指令測試看看進不進得去:

$ mongo admin -u “你的帳號” -p “你的密碼”

2. 切到目標資料庫建立使用者

root@localhost:~/misavo# mongo admin -u "你的帳號" -p "你的密碼"MongoDB shell version v3.6.5connecting to: mongodb://127.0.0.1:27017/adminMongoDB server version: 3.6.5> use 資料庫名稱switched to db 資料庫名稱> db.createUser({user: "你的帳號", pwd: "你的密碼", roles: ["dbOwner"]})Successfully added user: { "user" : "你的帳號", "roles" : [ "dbOwner" ] }> quit()

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

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

3. 以資料庫使用者身分進入該資料庫

root@localhost:~/misavo# mongo misavo -u "你的帳號" -p "你的密碼"MongoDB shell version v3.6.5connecting to: mongodb://127.0.0.1:27017/misavoMongoDB server version: 3.6.5> db.表格.find(){ "_id" : "9af4acebe6d5110f7a24e123460756", ...

這樣就完成為資料庫加上安全密碼的功能了!

4. 啟動有密碼保護的 MongoDB server

方法1: 使用指令啟動

mongod --auth

方法 2 : 使用 service

MongoDB 在 ubuntu 中的設定檔通常放在 /etc/mongodb.conf 底下

請編輯該檔案,加入下列描述:

security:    authorization: enabled

然後使用下列指令啟動 mongod

$ sudo service mongod start

--

--

陳鍾誠
程式人月刊

程式人、說書人、雜誌編輯、網站經營、金門大學教師