1. 程式人生 > >MongoDB入門系列(二) ===> 建立使用者

MongoDB入門系列(二) ===> 建立使用者

本文程式碼測試環境: win10, MongoDB 4.0.5

剛安裝好的mongodb會提示:

2019-01-05T11:22:42.470+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2019-01-05T11:22:42.470+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.

我們可以建立使用者來解決這個問題.

建立使用者

由於剛安裝完, 沒有許可權校驗因此可以先建立一個超級管理員

use admin

db.createUser(
   {
        user:"root", // 使用者名稱
        pwd:"root", // 密碼
        roles:[ // 角色
         {role:"root",db:"admin"} // 超級管理員
        ]
   }
)

// 輸入命令, 提示Successfully added user:
// 之後可以輸入show users命令, 檢視詳情

角色介紹

1.資料庫使用者角色:read、readWrite;
2.資料庫管理角色:dbAdmin、dbOwner、userAdmin;
3.叢集管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4.備份恢復角色:backup、restore;
5.所有資料庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6.超級使用者角色:root  

修改密碼

db.changeUserPassword("使用者名稱", "密碼")

刪除使用者

db.dropUser("使用者名稱");

接著文章開頭

建立完超級管理員之後最後再使用dbAdmin, 或者dbAdminAnyDatabase建立一個日常開發角色. 命令還是createUser, 只需要把roles裡面的role更改一下就好.

建立完之後在MongoDB(博主的版本為4.0.5)的安裝目錄下找到bin資料夾, 開啟裡面的mongod.cfg.
在這裡插入圖片描述

增加欄位authorization: enabled, 開啟許可權校驗
在這裡插入圖片描述

之後使用net stop mongodb

, net start mongodb 重啟一下mongo的服務

在這裡插入圖片描述

再次進入的時候就會發現, 之前的warning不見了.

登入

登入使用者有兩種方法

// 1
輸入命令 mongo
輸入命令 use admin(切換到剛剛建立使用者的資料庫, 如不切換這時的資料庫預設為test)
輸入命令db.auth("使用者名稱", "密碼") 返回值為1代表登入成功
// 2
mongo -u "使用者名稱" -p "密碼" --authenticationDatabase 指定資料庫 --port 指定埠

--authenticationDatabase 不寫預設test資料庫
--port 不寫預設為27017, 如果想修改可以在mongod.cfg檔案中修改