<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          第5期 MongoDB配置用戶(hù)名密碼認(rèn)證登錄

          共 9366字,需瀏覽 19分鐘

           ·

          2021-05-17 14:53

          一、前言

          在默認(rèn)情況下,mongod是監(jiān)聽(tīng)在127.0.0.1之上的,任何客戶(hù)端都可以直接連接27017,默認(rèn)是**【非授權(quán)模式】** (也就是不需要任何權(quán)限驗(yàn)證、不需要驗(yàn)證賬戶(hù),直接在命令窗口中輸入 mongo 回車(chē),就可以進(jìn)行相關(guān)操作),這是非常不安全的(尤其是在生產(chǎn)環(huán)境中,當(dāng)然如果是自己玩玩的話就無(wú)所謂了)。MongoDB使用的是基于角色的訪問(wèn)控制(Role-Based Access Control,RBAC)來(lái)管理用戶(hù)對(duì)實(shí)例的訪問(wèn)。通過(guò)對(duì)用戶(hù)授予一個(gè)或多個(gè)角色來(lái)控制用戶(hù)訪問(wèn)數(shù)據(jù)庫(kù)資源的權(quán)限和數(shù)據(jù)庫(kù)操作的權(quán)限,在對(duì)用戶(hù)分配角色之前,用戶(hù)無(wú)法訪問(wèn)實(shí)例。本文主要介紹MongoDB RBAC(Role-Based Access Control)權(quán)限管理機(jī)制,其核心是給每個(gè)用戶(hù)賦予一定的權(quán)限,用戶(hù)連接MongoDB 前需先驗(yàn)證,驗(yàn)證通過(guò)后即擁有用戶(hù)的權(quán)限,權(quán)限決定了用戶(hù)在某一組資源(如某個(gè)DB、某個(gè)特定集合)上可以執(zhí)行哪些操作(比如增刪改查、建索引)。

          二、RBAC權(quán)限模型簡(jiǎn)介

          RBAC(基于角色的訪問(wèn)控制):英文名稱(chēng)Role-Based Access Control,介紹這種模型的權(quán)限系統(tǒng)設(shè)計(jì)。取消了用戶(hù)和權(quán)限的直接關(guān)聯(lián),改為通過(guò)用戶(hù)關(guān)聯(lián)角色、角色關(guān)聯(lián)權(quán)限的方法來(lái)間接地賦予用戶(hù)權(quán)限。從而實(shí)現(xiàn)了解耦。RBAC在發(fā)展過(guò)程中分為以下幾個(gè)版本。RBAC0、RBAC1、RBAC2、RBAC3。
          • RBAC0:這是RBAC的初始形態(tài),也是最原始、最簡(jiǎn)單的RBAC版本;
          • RBAC1:基于RBAC0的優(yōu)化,增加了角色的分層(即:子角色),子角色可以繼承父角色的所有權(quán)限;
          • RBAC2:基于RBAC0的另一種優(yōu)化,增加了對(duì)角色的一些限制:角色互斥、角色容量等;
          • RBAC3: 最復(fù)雜也是最全面的RBAC模型,它在RBAC0的基礎(chǔ)上,將RBAC1和RBAC2中的優(yōu)化部分進(jìn)行了整合;
          模型中有幾個(gè)關(guān)鍵的術(shù)語(yǔ):
          • 用戶(hù)(User):系統(tǒng)接口及訪問(wèn)的操作者,即登錄的用戶(hù)本身,有一個(gè)用戶(hù)ID(定義uuid)
          • 角色(Role):具有一類(lèi)相同操作權(quán)限的用戶(hù)的總稱(chēng),即這個(gè)用戶(hù)擁有幾個(gè)身份,一個(gè)用戶(hù)可以有幾個(gè)角色
          • 權(quán)限(Access):能夠訪問(wèn)某接口或者做某操作的授權(quán)資格,Access英語(yǔ)中的含義是訪問(wèn),引申為訪問(wèn)的資源,習(xí)慣上可以稱(chēng)之為權(quán)限

          三、MongoDB系統(tǒng)角色(RBAC)

          MongoDB內(nèi)部提供了一系列內(nèi)置的角色,這些角色是為了完成一些基本的數(shù)據(jù)庫(kù)操作。每個(gè)內(nèi)置角色提供了用戶(hù)在角色數(shù)據(jù)庫(kù)內(nèi)數(shù)據(jù)庫(kù)級(jí)別所有非系統(tǒng)類(lèi)集合的訪問(wèn)權(quán)限,也提供了對(duì)集合級(jí)別所有系統(tǒng)集合的訪問(wèn)權(quán)限。MongoDB在每個(gè)數(shù)據(jù)庫(kù)上都提供內(nèi)置的數(shù)據(jù)庫(kù)用戶(hù)角色和數(shù)據(jù)庫(kù)管理角色,但只在admin數(shù)據(jù)庫(kù)中提供其它的內(nèi)置角色。

          3.1 用戶(hù)

          MongoDB是基于角色的訪問(wèn)控制,所以創(chuàng)建用戶(hù)需要指定用戶(hù)的角色,在創(chuàng)建用戶(hù)之前需要滿足:
          1. 先在admin數(shù)據(jù)庫(kù)中創(chuàng)建角色為userAdmin或userAdminAnyDatabase的用戶(hù)作為管理用戶(hù)的用戶(hù);
          2. 啟用訪問(wèn)控制,進(jìn)行登錄用戶(hù)驗(yàn)證,這樣創(chuàng)建用戶(hù)才有意義。
          3.1.1 創(chuàng)建用戶(hù)管理的用戶(hù) 啟用訪問(wèn)控制登錄之前,首先需要在admin數(shù)據(jù)庫(kù)中創(chuàng)建角色為userAdmin或userAdminAnyDatabase作為用戶(hù)管理的用戶(hù),之后才能通過(guò)這個(gè)用戶(hù)創(chuàng)建其它角色的用戶(hù),這個(gè)用戶(hù)作為其它所有用戶(hù)的管理者。

          3.2 角色

          在MongoDB中通過(guò)角色對(duì)用戶(hù)授予相應(yīng)數(shù)據(jù)庫(kù)資源的操作權(quán)限,每個(gè)角色當(dāng)中的權(quán)限可以顯式指定,也可以通過(guò)繼承其他角色的權(quán)限,或者兩都都存在的權(quán)限。

          3.2.1 MongoDB內(nèi)置角色:

          1. 數(shù)據(jù)庫(kù)用戶(hù)角色:read、readWrite;

          2. 數(shù)據(jù)庫(kù)管理角色:dbAdmin、dbOwner、userAdmin;

          3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;

          4. 備份恢復(fù)角色:backup、restore;

          5. 所有數(shù)據(jù)庫(kù)角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase

          6. 超級(jí)用戶(hù)角色:root

          7. 內(nèi)部角色:__system

          常用的內(nèi)置角色,如下表:
          角色權(quán)限描述
          read可以讀取指定數(shù)據(jù)庫(kù)中任何數(shù)據(jù)。
          readWrite可以讀寫(xiě)指定數(shù)據(jù)庫(kù)中任何數(shù)據(jù),包括創(chuàng)建、重命名、刪除集合。
          readAnyDatabase可以讀取所有數(shù)據(jù)庫(kù)中任何數(shù)據(jù)(除了數(shù)據(jù)庫(kù)config和local之外)。
          readWriteAnyDatabase可以讀寫(xiě)所有數(shù)據(jù)庫(kù)中任何數(shù)據(jù)(除了數(shù)據(jù)庫(kù)config和local之外)。
          dbAdmin可以讀取指定數(shù)據(jù)庫(kù)以及對(duì)數(shù)據(jù)庫(kù)進(jìn)行清理、修改、壓縮、獲取統(tǒng)計(jì)信息、執(zhí)行檢查等操作。
          dbAdminAnyDatabase可以讀取任何數(shù)據(jù)庫(kù)以及對(duì)數(shù)據(jù)庫(kù)進(jìn)行清理、修改、壓縮、獲取統(tǒng)計(jì)信息、執(zhí)行檢查等操作(除了數(shù)據(jù)庫(kù)config和local之外)。
          clusterAdmin可以對(duì)整個(gè)集群或數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行管理操作。
          userAdmin可以在指定數(shù)據(jù)庫(kù)創(chuàng)建和修改用戶(hù)。
          userAdminAnyDatabase可以在指定數(shù)據(jù)庫(kù)創(chuàng)建和修改用戶(hù)(除了數(shù)據(jù)庫(kù)config和local之外)。

          3.2.1.1 數(shù)據(jù)庫(kù)用戶(hù)角色

          • readread角色包含讀取所有非系統(tǒng)集合數(shù)據(jù)和訂閱部分系統(tǒng)集合(system.indexes、system.js、system.namespaces)的權(quán)限。

          該角色權(quán)限包含命令操作:changeStream、collStats、dbHash、dbStats、find、killCursors、listIndexes、listCollections。
          • readWritereadWrite角色包含read角色的權(quán)限同時(shí)增加了對(duì)非系統(tǒng)集合數(shù)據(jù)的修改權(quán)限,但只對(duì)系統(tǒng)集合system.js有修改權(quán)限。
          該角色權(quán)限包含命令操作:collStats、convertToCapped、createCollection、dbHash、dbStats、dropCollection、createIndex、dropIndex、find、insert、killCursors、listIndexes、listCollections、remove、renameCollectionSameDB、update。

          3.2.1.2 數(shù)據(jù)庫(kù)管理角色

          • dbAdmindbAdmin角色包含執(zhí)行某些管理任務(wù)(與schema相關(guān)、索引、收集統(tǒng)計(jì)信息)的權(quán)限,該角色不包含用戶(hù)和角色管理的權(quán)限。

          對(duì)于系統(tǒng)集合(system.indexes、system.namespaces、system.profile)包含命令操作:collStats、dbHash、dbStats、find、killCursors、listIndexes、listCollections、dropCollection and createCollection(僅適用system.profile)
          對(duì)于非系統(tǒng)集合包含命令操作:bypassDocumentValidation、collMod、collStats、compact、convertToCapped、createCollection、createIndex、dbStats、dropCollection、dropDatabase、dropIndex、enableProfiler、reIndex、renameCollectionSameDB、repairDatabase、storageDetails、validate
          • dbOwnerdbOwner角色包含對(duì)數(shù)據(jù)所有的管理操作權(quán)限。即包含角色readWrite、dbAdmin和userAdmin的權(quán)限。
          • userAdminuserAdmin角色包含對(duì)當(dāng)前數(shù)據(jù)庫(kù)創(chuàng)建和修改角色和用戶(hù)的權(quán)限。該角色允許向其它任何用戶(hù)(包括自身)授予任何權(quán)限,所以這個(gè)角色也提供間接對(duì)超級(jí)用戶(hù)(root)的訪問(wèn)權(quán)限,如果限定在admin數(shù)據(jù)中,也包括集群管理的權(quán)限。
          該角色權(quán)限包含命令操作:changeCustomData、changePassword、createRole、createUser、dropRole、dropUser、grantRole、revokeRole、setAuthenticationRestriction、viewRole、viewUser。

          3.2.1.3 集群管理角色

          • clusterManagerclusterManager角色包含對(duì)集群監(jiān)控和管理操作的權(quán)限。擁有此角色的用戶(hù)能夠訪問(wèn)集群中的config數(shù)據(jù)庫(kù)和local數(shù)據(jù)庫(kù)。

          對(duì)于整個(gè)集群該角色包含命令操作:addShard、appendOplogNote、applicationMessage、cleanupOrphaned、flushRouterConfig、listSessions (3.6新增)、listShards、removeShard、replSetConfigure、replSetGetConfig、replSetGetStatus、replSetStateChange、resync。
          對(duì)于集群中所有的數(shù)據(jù)庫(kù)包含命令操作:enableSharding、moveChunk、splitChunk、splitVector。
          對(duì)于集群中config數(shù)據(jù)庫(kù)和local數(shù)據(jù)庫(kù)包含的命令操作可以參考官方文檔:https://docs.mongodb.com/manual/reference/built-in-roles/#clusterManager。
          • clusterMonitorclusterMonitor角色包含針對(duì)監(jiān)控工具具有只讀操作的權(quán)限。如工具M(jìn)ongoDB Cloud Manager和工具Ops Manager。

          對(duì)于整個(gè)集群該角色包含命令操作:checkFreeMonitoringStatus(4.0新增)、connPoolStats、getCmdLineOpts、getLog、getParameter、getShardMap、hostInfo、inprog、listDatabases、listSessions (3.6新增)、listShards、netstat、replSetGetConfig、replSetGetStatus、serverStatus、setFreeMonitoring (4.0新增)、shardingState、top。

          對(duì)于集群中所有的數(shù)據(jù)為包含命令操作:collStats、dbStats、getShardVersion、indexStats、useUUID(3.6新增)。

          對(duì)于集群中config數(shù)據(jù)庫(kù)和local數(shù)據(jù)庫(kù)包含的命令操作可以參考官方文檔:https://docs.mongodb.com/manual/reference/built-in-roles/#clusterMonitor。

          • hostManagerhostManager角色包含針對(duì)數(shù)據(jù)庫(kù)服務(wù)器的監(jiān)控和管理操作權(quán)限。

          對(duì)于整個(gè)集群該角色包含命令操作:applicationMessage、closeAllDatabases、connPoolSync、cpuProfiler、flushRouterConfig、fsync、invalidateUserCache、killAnyCursor (4.0新增)、killAnySession (3.6新增)、killop、logRotate、resync、setParameter、shutdown、touch、unlock。

          對(duì)于集群中所有的數(shù)據(jù)庫(kù)包含命令操作:killCursors、repairDatabase。
          • clusterAdminclusterAdmin角色包含MongoDB集群管理最高的操作權(quán)限。該角色包含clusterManager、clusterMonitor和hostManager三個(gè)角色的所有權(quán)限,并且還擁有dropDatabase操作命令的權(quán)限。

          3.2.1.4 備份恢復(fù)角色

          • backupbackup角色包含備份MongoDB數(shù)據(jù)最小的權(quán)限。

          對(duì)于MongoDB中所有的數(shù)據(jù)庫(kù)資源包含命令操作:listDatabases、listCollections、listIndexes。
          對(duì)于整個(gè)集群包含命令操作:appendOplogNote、getParameter、listDatabases。
          對(duì)于以下數(shù)據(jù)庫(kù)資源提供find操作權(quán)限:
          1. 對(duì)于集群中的所有非系統(tǒng)集合,包括自身的config數(shù)據(jù)庫(kù)和local數(shù)據(jù)庫(kù);
          2. 對(duì)于集群中的系統(tǒng)集合:system.indexes、system.namespaces、system.js和system.profile;
          3. admin數(shù)據(jù)庫(kù)中的集合:admin.system.users和admin.system.roles;
          4. config.settings集合;
          5. 2.6版本之前的system.users集合。對(duì)于config.setting集合還有insert和update操作權(quán)限。
          • restorerestore角色包含從備份文件中還原恢復(fù)MongoDB數(shù)據(jù)(除了system.profile集合)的權(quán)限。
          restore角色有以下注意事項(xiàng):
          1. 如果備份中包含system.profile集合而恢復(fù)目標(biāo)數(shù)據(jù)庫(kù)沒(méi)有system.profile集合,mongorestore會(huì)嘗試重建該集合。因此執(zhí)行用戶(hù)需要有額外針對(duì)system.profile集合的createCollection和convertToCapped操作權(quán)限;
          2. 如果執(zhí)行mongorestore命令時(shí)指定選項(xiàng)--oplogReplay,則restore角色包含的權(quán)限無(wú)法進(jìn)行重放oplog。如果需要進(jìn)行重放oplog,則需要只對(duì)執(zhí)行mongorestore的用戶(hù)授予包含對(duì)實(shí)例中任何資源具有任何權(quán)限的自定義角色。對(duì)于整個(gè)集群包含命令操作:getParameter。
          對(duì)于所有非系統(tǒng)集合包含命令操作:bypassDocumentValidation、changeCustomData、changePassword、collMod、convertToCapped、createCollection、createIndex、createRole、createUser、dropCollection、dropRole、dropUser、grantRole、insert、revokeRole、viewRole、viewUser。
          關(guān)于restore角色包含其它的命令操作可以參考官方文檔:https://docs.mongodb.com/manual/reference/built-in-roles/#restore。

          3.2.1.5 所有數(shù)據(jù)庫(kù)角色

          以下角色只存在于admin數(shù)據(jù)庫(kù),并且適用于除了config和local之外所有的數(shù)據(jù)庫(kù)。

          • readAnyDatabasereadAnyDatabase角色包含對(duì)除了config和local之外所有數(shù)據(jù)庫(kù)的只讀權(quán)限。同時(shí)對(duì)于整個(gè)集群包含listDatabases命令操作。

          在MongoDB3.4版本之前,該角色包含對(duì)config和local數(shù)據(jù)庫(kù)的讀取權(quán)限。當(dāng)前版本如果需要對(duì)這兩個(gè)數(shù)據(jù)庫(kù)進(jìn)行讀取,則需要在admin數(shù)據(jù)庫(kù)授予用戶(hù)對(duì)這兩個(gè)數(shù)據(jù)庫(kù)的read角色。

          • readWriteAnyDatabasereadWriteAnyDatabase角色包含對(duì)除了config和local之外所有數(shù)據(jù)庫(kù)的讀寫(xiě)權(quán)限。同時(shí)對(duì)于整個(gè)集群包含listDatabases命令操作。

          在MongoDB3.4版本之前,該角色包含對(duì)config和local數(shù)據(jù)庫(kù)的讀寫(xiě)權(quán)限。當(dāng)前版本如果需要對(duì)這兩個(gè)數(shù)據(jù)庫(kù)進(jìn)行讀寫(xiě),則需要在admin數(shù)據(jù)庫(kù)授予用戶(hù)對(duì)這兩個(gè)數(shù)據(jù)庫(kù)的readWrite角色。

          • userAdminAnyDatabaseuserAdminAnyDatabase角色包含類(lèi)似于userAdmin角色對(duì)于所有數(shù)據(jù)庫(kù)的用戶(hù)管理權(quán)限,除了config數(shù)據(jù)庫(kù)和local數(shù)據(jù)庫(kù)。

          對(duì)于集群包含命令操作:authSchemaUpgrade、invalidateUserCache、listDatabases。

          對(duì)于系統(tǒng)集合admin.system.users和admin.system.roles包含命令操作:collStats、dbHash、dbStats、find、killCursors、planCacheRead、createIndex、dropIndex。

          該角色不會(huì)限制用戶(hù)授予權(quán)限的操作,因此,擁有角色的用戶(hù)也有可能授予超過(guò)角色范圍內(nèi)的權(quán)限給自己或其它用戶(hù),也可以使自己成為超級(jí)用戶(hù),userAdminAnyDatabase角色也可以認(rèn)為是MongoDB中的超級(jí)用戶(hù)角色。

          • dbAdminAnyDatabasedbAdminAnyDatabase角色包含類(lèi)似于dbAdmin角色對(duì)于所有數(shù)據(jù)庫(kù)管理權(quán)限,除了config數(shù)據(jù)庫(kù)和local數(shù)據(jù)庫(kù)。同時(shí)對(duì)于整個(gè)集群包含listDatabases命令操作。

          在MongoDB3.4版本之前,該角色包含對(duì)config和local數(shù)據(jù)庫(kù)的管理權(quán)限。當(dāng)前版本如果需要對(duì)這兩個(gè)數(shù)據(jù)庫(kù)進(jìn)行管理,則需要在admin數(shù)據(jù)庫(kù)授予用戶(hù)對(duì)這兩個(gè)數(shù)據(jù)庫(kù)的dbAdmin角色。

          3.2.1.6 超級(jí)用戶(hù)角色

          以下角色包含在任何數(shù)據(jù)庫(kù)授予任何用戶(hù)任何權(quán)限的權(quán)限。這意味著用戶(hù)如果有以下角色之一可以為自己在任何數(shù)據(jù)庫(kù)授予任何權(quán)限。
          • dbOwner角色(作用范圍為admin數(shù)據(jù)庫(kù))
          • userAdmin角色(作用范圍為admin數(shù)據(jù)庫(kù))
          • userAdminAnyDatabase角色 以下角色包含數(shù)據(jù)庫(kù)所有資源的所有操作權(quán)限。
          • rootroot角色包含角色readWriteAnyDatabase、dbAdminAnyDatabase、userAdminAnyDatabase、clusterAdmin、restore和backup聯(lián)合之后所有的權(quán)限。

          3.2.1.7 內(nèi)部角色

          • __system

          MongoDB將此角色授予代表集群成員的用戶(hù)對(duì)象,如副本集(replica set)成員或mongos實(shí)例。該角色允許用戶(hù)對(duì)于需要的數(shù)據(jù)庫(kù)操作都具有相應(yīng)的權(quán)限,不要將該角色授予應(yīng)用程序用戶(hù)或其它管理員用戶(hù)。

          3.2.2 用戶(hù)自定義角色

          雖然MongoDB提供了一系列內(nèi)置角色,但有時(shí)內(nèi)置角色所包含的權(quán)限并不滿足所有需求,所以MongoDB也提供了創(chuàng)建自定義角色的方法。當(dāng)創(chuàng)建一個(gè)自定義角色時(shí)需要進(jìn)入指定數(shù)據(jù)庫(kù)進(jìn)行操作,因?yàn)镸ongoDB通過(guò)數(shù)據(jù)庫(kù)和角色名稱(chēng)對(duì)角色進(jìn)行唯一標(biāo)識(shí)。
          除了在admin數(shù)據(jù)庫(kù)中創(chuàng)建的角色之外,在其它數(shù)據(jù)庫(kù)中創(chuàng)建的自定義角色包含的權(quán)限只適用于角色所在的數(shù)據(jù)庫(kù),并且只能繼承同數(shù)據(jù)庫(kù)其它角色的權(quán)限。在admin數(shù)據(jù)庫(kù)中創(chuàng)建的自定義角色則不受此限制。
          MongoDB將所有的角色信息存儲(chǔ)在admin數(shù)據(jù)庫(kù)的system.roles集合中,不建議直接訪問(wèn)此集合內(nèi)容,而是通過(guò)角色管理命令來(lái)查看和編輯自定義角色。

          3.3 權(quán)限

          權(quán)限由指定的數(shù)據(jù)庫(kù)資源(resource)以及允許在指定資源上進(jìn)行的操作(action)組成。
          1. 資源(resource)包括:數(shù)據(jù)庫(kù)、集合、部分集合和集群;
          2. 操作(action)包括:對(duì)資源進(jìn)行的增、刪、改、查(CRUD)操作。在角色定義時(shí)可以包含一個(gè)或多個(gè)已存在的角色,新創(chuàng)建的角色會(huì)繼承包含的角色所有的權(quán)限。在同一個(gè)數(shù)據(jù)庫(kù)中,新創(chuàng)建角色可以繼承其他角色的權(quán)限,在admin數(shù)據(jù)庫(kù)中創(chuàng)建的角色可以繼承在其它任意數(shù)據(jù)庫(kù)中角色的權(quán)限。
          關(guān)于角色權(quán)限的查看,可以通過(guò)如下命令查詢(xún):
          //進(jìn)入mongo指令平臺(tái)
          mongo

          // 查詢(xún)當(dāng)前數(shù)據(jù)庫(kù)中的角色權(quán)限
          > db.runCommand({ rolesInfo: "<rolename>" })

          // 查詢(xún)其它數(shù)據(jù)庫(kù)中指定的角色權(quán)限
          > db.runCommand({ rolesInfo: { role: "<rolename>", db: "<database>" } }

          // 查詢(xún)多個(gè)角色權(quán)限
          > db.runCommand(
          {
          rolesInfo: [
          "<rolename>",
          { role: "<rolename>", db: "<database>" },
          ...
          ]
          }
          )

          // 查詢(xún)所有角色權(quán)限(僅用戶(hù)自定義角色)
          > db.runCommand({ rolesInfo: 1 })

          // 查詢(xún)所有角色權(quán)限(包含內(nèi)置角色)
          > db.runCommand({ rolesInfo: 1, showBuiltinRoles: true })

          四、賬號(hào)密碼設(shè)置

          4.1 創(chuàng)建所有數(shù)據(jù)庫(kù)管理員用戶(hù)密碼認(rèn)證

          管理員身份運(yùn)行cmd.exe,先cd到Mongodb安裝目錄的bin目錄, 輸入命令mongo.exe,進(jìn)入mongodb命令界面:輸入命令mongo.exe,進(jìn)入mongodb命令界面:
          //進(jìn)入mongo語(yǔ)法環(huán)境
          mongo
          //查詢(xún)當(dāng)前數(shù)據(jù)庫(kù)
          > show dbs
          admin 0.000GB
          config 0.000GB
          local 0.000GB
          // 進(jìn)入admin數(shù)據(jù)庫(kù)
          > use admin
          switched to db admin
          // 添加管理員用戶(hù)(用戶(hù)名admin 和 密碼123456 是可以自定義的 【但是要記牢哦!!】)
          db.createUser({
          user:"admin",
          pwd:"123456",
          roles:["root"] // 角色root是超級(jí)管理員
          })

          4.2 創(chuàng)建單個(gè)數(shù)據(jù)庫(kù)設(shè)置用戶(hù)密碼認(rèn)證

          這里以 kuaizhidao 數(shù)據(jù)庫(kù)為例,給kuaizhidao配置一個(gè)賬戶(hù),注:各個(gè)不同的數(shù)據(jù)庫(kù)之間,可以創(chuàng)建有一個(gè) 或 多個(gè)賬戶(hù),各數(shù)據(jù)庫(kù)之間賬戶(hù)、密碼都是獨(dú)立的,不能互相訪問(wèn)!

          // 給myweb數(shù)據(jù)庫(kù) 創(chuàng)建一個(gè)名為:mupiao 的賬戶(hù),角色為:dbOwner
          db.createUser({
          user:"kuaizhidao",
          pwd: "123456",
          roles: [{
          role: "dbOwner",
          db: "kuaizhidao"
          }]


          瀏覽 103
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  成人三级片在线观看 | A∨视频在线免费观看 | 色色成人网 | 伊人网在线观看 | 91精品国产乱码久久久久 |