檢查MongoDB伺服器的身份驗證狀態,使用MongoDB的shell或者命令列工具。
1 使用MongoDB Shell
1.1 連線到admin
資料庫
因為大多數身份驗證相關的命令需要在admin
資料庫中執行:
use admin
1.2 檢查伺服器的身份驗證狀態
db.runCommand({getParameter: 1, authenticationMechanisms: 1})
如伺服器啟用身份驗證,會看到類似輸出:
{
"authenticationMechanisms" : [
"SCRAM-SHA-256",
"SCRAM-SHA-1"
],
"ok" : 1
}
2 使用mongostat
一個監控MongoDB例項的工具。你可以使用它來檢查伺服器的狀態,包括身份驗證狀態。
- 在命令列中輸入以下命令
mongostat --uri "mongodb://localhost:27017/admin"
如果伺服器啟用了身份驗證,mongostat
會提示你輸入使用者名稱和密碼。
2 db.auth()
如已連線到MongoDB伺服器,db.auth()測試身份驗證,如:
3 建立管理員使用者
執行命令前,確保MongoDB伺服器已經啟用了身份驗證。否則,這個命令將不會起作用。
建立新使用者:
db.createUser({
user: "admin",
pwd: "password",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})
roles
指定使用者角色。userAdminAnyDatabase
角色允許使用者在所有資料庫中建立和修改使用者。
執行成功的輸出:
{
"ok" : 1
}
可用這個使用者名稱和密碼來連線到MongoDB伺服器並進行身份驗證。
MongoDB 4.0或更高版本,用SCRAM-SHA-256
身份驗證機制。可在db.createUser()
新增mechanisms
欄位:
db.createUser({
user: "myUser",
pwd: "myPassword",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ],
mechanisms: [ "SCRAM-SHA-256" ]
})
建立使用者後,測試身份驗證:
db.auth("myUser", "myPassword")
如果身份驗證成功,你會看到1
,否則0
。
關注我,緊跟本系列專欄文章,咱們下篇再續!
作者簡介:魔都架構師,多家大廠後端一線研發經驗,在分散式系統設計、資料平臺架構和AI應用開發等領域都有豐富實踐經驗。
各大技術社群頭部專家博主。具有豐富的引領團隊經驗,深厚業務架構和解決方案的積累。
負責:
- 中央/分銷預訂系統效能最佳化
- 活動&券等營銷中臺建設
- 交易平臺及資料中臺等架構和開發設計
- 車聯網核心平臺-物聯網連線平臺、大資料平臺架構設計及最佳化
- LLM Agent應用開發
- 區塊鏈應用開發
- 大資料開發挖掘經驗
- 推薦系統專案
目前主攻市級軟體專案設計、構建服務全社會的應用系統。
參考:
- 程式設計嚴選網
本文由部落格一文多發平臺 OpenWrite 釋出!