驗(yàn)證是驗(yàn)證客戶端身份的過程。 當(dāng)啟用訪問控制(即授權(quán))時(shí),MongoDB要求所有客戶端進(jìn)行身份驗(yàn)證,以確定其訪問。
雖然認(rèn)證和授權(quán)密切相關(guān),但認(rèn)證與授權(quán)不同。認(rèn)證是驗(yàn)證用戶的身份; 授權(quán)確定驗(yàn)證的用戶對(duì)哪些資源和操作的訪問。
要驗(yàn)證用戶,可參考MongoDB提供的db.auth()方法。
對(duì)于mongo shell和MongoDB工具,還可以通過從命令行傳遞用戶身份驗(yàn)證信息來驗(yàn)證用戶。
MongoDB支持許多身份驗(yàn)證機(jī)制,客戶端可以使用它們來驗(yàn)證身份。 這些機(jī)制允許MongoDB集成到現(xiàn)有的身份驗(yàn)證系統(tǒng)中。
MongoDB支持多種認(rèn)證機(jī)制:
MongoDB質(zhì)詢和響應(yīng)(MongoDB-CR)。MongoDB 3.0版本更改:3.0中創(chuàng)建的新質(zhì)詢響應(yīng)用戶將使用SCRAM-SHA-1。 如果使用MongoDB 2.6的用戶數(shù)據(jù),MongoDB 3.0將繼續(xù)使用MONGODB-CR。
MongoDB Enterprise除了支持上述機(jī)制外,還支持以下機(jī)制:
除了驗(yàn)證客戶端的身份之外,MongoDB還可以要求副本集和分片集群的成員對(duì)其各自的副本集或分片集群進(jìn)行身份驗(yàn)證。 有關(guān)詳細(xì)信息,請(qǐng)參閱內(nèi)部認(rèn)證。
在分片集群中,客戶端通常直接向mongos實(shí)例進(jìn)行身份驗(yàn)證。 但是,某些維護(hù)操作可能需要直接對(duì)特定的分片進(jìn)行身份驗(yàn)證。 有關(guān)認(rèn)證和分片集群的更多信息,請(qǐng)參閱分片集群用戶。