MongoDB用戶

????要在MongoDB中對(duì)客戶端進(jìn)行身份驗(yàn)證,您必須將相應(yīng)的用戶添加到MongoDB。

????為了添加一個(gè)用戶,MongoDB提供了這個(gè)db.createUser()方法。添加用戶時(shí),可以將角色分配給用戶以授予權(quán)限。

在數(shù)據(jù)庫(kù)中創(chuàng)建的第一個(gè)用戶應(yīng)該是具有管理其他用戶權(quán)限的用戶管理員


? ??認(rèn)證數(shù)據(jù)庫(kù)用戶相關(guān)


????添加用戶時(shí),您可以在特定數(shù)據(jù)庫(kù)中創(chuàng)建用戶。這個(gè)數(shù)據(jù)庫(kù)是用戶的認(rèn)證數(shù)據(jù)庫(kù)。

????用戶可以擁有不同數(shù)據(jù)庫(kù)的權(quán)限;?

????也就是說(shuō),用戶的權(quán)限不限于其身份驗(yàn)證數(shù)據(jù)庫(kù)。

????通過分配給其他數(shù)據(jù)庫(kù)中的用戶角色,在一個(gè)數(shù)據(jù)庫(kù)中創(chuàng)建的用戶可以擁有對(duì)其他數(shù)據(jù)庫(kù)執(zhí)行操作的權(quán)限。


????用戶名和認(rèn)證數(shù)據(jù)庫(kù)充當(dāng)該用戶的唯一標(biāo)識(shí)符。

????也就是說(shuō),如果兩個(gè)用戶具有相同的名稱但是在不同的數(shù)據(jù)庫(kù)中創(chuàng)建,則它們是兩個(gè)單獨(dú)的用戶。

????如果您打算讓一個(gè)用戶擁有多個(gè)數(shù)據(jù)庫(kù)的權(quán)限,請(qǐng)?jiān)谶m用的數(shù)據(jù)庫(kù)中創(chuàng)建包含角色的單個(gè)用戶,而不是在不同的數(shù)據(jù)庫(kù)中多次創(chuàng)建用戶。


????集中用戶數(shù)據(jù)


? ??在版本2.6中更改。

????MongoDB將所有用戶信息(包括name,password和)存儲(chǔ)在?數(shù)據(jù)庫(kù)中的system.users集合中。user'sauthentication?databaseadmin

????請(qǐng)勿直接訪問此集合,而應(yīng)使用用戶管理命令。


????分片群集用戶


????要為分片群集創(chuàng)建用戶,請(qǐng)連接到mongos?實(shí)例并添加用戶。然后,客戶端通過mongos實(shí)例對(duì)這些用戶進(jìn)行身份驗(yàn)證?。


????碎片本地用戶


????然而,一些維護(hù)操作,如cleanupOrphaned,?compactrs.reconfig(),需要分片集群特定的碎片直接連接。要執(zhí)行這些操作,您必須直接連接到分片并作為分片本地?管理用戶進(jìn)行身份驗(yàn)證。

????要?jiǎng)?chuàng)建分片本地管理用戶,請(qǐng)直接連接到分片并創(chuàng)建用戶。MongoDB將分片本地用戶存儲(chǔ)在分片admin?本身的數(shù)據(jù)庫(kù)中。

????這些分片本地用戶完全獨(dú)立于通過添加到分片群集的用戶mongos。碎片本地用戶是碎片的本地用戶,無(wú)法訪問mongos。

????直接連接到碎片應(yīng)該只用于特定于碎片的維護(hù)和配置。一般來(lái)說(shuō),客戶端應(yīng)該通過連接到分片群集mongos。


????本地主機(jī)異常


????本地主機(jī)例外允許您啟用訪問控制,然后在系統(tǒng)中創(chuàng)建第一個(gè)用戶。

????在本地主機(jī)例外情況下,啟用訪問控制后,連接到本地主機(jī)接口并在admin數(shù)據(jù)庫(kù)中創(chuàng)建第一個(gè)用戶。第一個(gè)用戶必須有權(quán)創(chuàng)建其他用戶,比如與用戶?userAdminuserAdminAnyDatabase角色。

????版本3.4中更改:?MongoDB 3.4擴(kuò)展了localhost異常以允許執(zhí)行該?db.createRole()方法。此方法允許用戶通過LDAP授權(quán)在MongoDB內(nèi)創(chuàng)建映射到LDAP中定義的角色的角色。有關(guān)更多信息,請(qǐng)參閱LDAP授權(quán)。

????在版本3.0中更改:本地主機(jī)異常已更改,以便這些連接只能?訪問admin?數(shù)據(jù)庫(kù)上的第一個(gè)用戶。在以前的版本中,使用localhost異常獲得訪問權(quán)限的連接對(duì)MongoDB實(shí)例具有不受限制的訪問權(quán)限。

????localhost異常僅適用于在MongoDB實(shí)例中沒有創(chuàng)建用戶的情況。

????在分片群集的情況下,本地主機(jī)例外將單獨(dú)應(yīng)用于每個(gè)分片以及整個(gè)群集。一旦創(chuàng)建了分片群集并通過mongos實(shí)例添加用戶管理員,您仍然必須防止未經(jīng)授權(quán)訪問單個(gè)分片。按照以下步驟為集群中的每個(gè)分片進(jìn)行操作:

????????創(chuàng)建一個(gè)管理用戶,或者

????????啟動(dòng)時(shí)禁用localhost異常。要禁用本地主機(jī)例外,請(qǐng)將enableLocalhostAuthBypass參數(shù)設(shè)置為0。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容