MongoDB入門系列(二) ===> 建立使用者
阿新 • • 發佈:2019-01-05
本文程式碼測試環境: 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檔案中修改