一、InstallingMongoDBon
Windows
在其中,您可以自定義安裝。在本例中,選擇設(shè)置類型為Custom。在選擇Custom時(shí)需要指定安裝目錄,所以要指定目錄C: PracticalMongoDB。
注意,MongoDB可以從用戶選擇的任何文件夾中運(yùn)行,因?yàn)樗亲园模⑶揖哂?/span>不依賴于系統(tǒng)。
如果選擇了完整的安裝類型,則選擇默認(rèn)的文件夾C:\Program Files\MongoDB。單擊Next將帶您到安裝屏幕的準(zhǔn)備就緒。點(diǎn)擊Install。這將啟動(dòng)安裝,并顯示屏幕上的進(jìn)展。一旦安裝完成,向?qū)M(jìn)入完成屏幕。單擊Finish完成設(shè)置。在成功完成上述步驟之后,您將擁有一個(gè)目錄調(diào)用C:在bin文件夾中所有相關(guān)應(yīng)用程序的實(shí)用程序。這就是它的全部。
二、RunningMongoDB
存儲(chǔ)文件需要一個(gè)數(shù)據(jù)文件夾。默認(rèn)情況下是C:Windows中的數(shù)據(jù)db和/data/dbLINUX系統(tǒng)。這些數(shù)據(jù)目錄不是由MongoDB創(chuàng)建的,所以在開始MongoDB數(shù)據(jù)目錄之前需要手動(dòng)創(chuàng)建,并且您需要確保設(shè)置了適當(dāng)?shù)臋?quán)限(例如MongoDB有讀取、寫入和目錄創(chuàng)建權(quán)限)。如果在創(chuàng)建文件夾之前啟動(dòng)MongoDB,它將拋出一個(gè)錯(cuò)誤消息,并且將無法運(yùn)行。
手動(dòng)創(chuàng)建data,與log文件的存儲(chǔ)位置。
ps. data位置: D:\JavaEnvironment\MongoDB\bin\data
log位置: D:\JavaEnvironment\MongoDB\log 并且新建一個(gè) mongo.log文件。
MongoDB服務(wù)安裝命令 sc create MongoDB binpath="G:\SoftInstall\MongoDB\bin\mongod.exe
--dbpath
D:\JavaEnvironment\MongoDB\bin\data --logpathD:\JavaEnvironment\MongoDB\log\mongo.log
--logappend --service"
另外教大家一個(gè)小技巧 TAB鍵的用法,例如在DOC框中切盤符時(shí)索引,還是很方便的
例如 我要到 D:\JavaEnvironment\MongoDB\bin
下。 切換到D盤時(shí), cd ja 這時(shí)按TAB鍵,會(huì)自動(dòng)索引到 D:\JavaEnvironment 下,當(dāng)然知道的例外。
三、Verifying the Installation
相關(guān)的可執(zhí)行文件將出現(xiàn)在子目錄下。下面的內(nèi)容可以在以下內(nèi)容中進(jìn)行檢查bin目錄,以檢查安裝步驟的成功:
·Mongod:數(shù)據(jù)庫的核心服務(wù)
·Mongo:MongoDB數(shù)據(jù)庫的shell
·Mongos:自動(dòng)分片過程
·Mongoexport:導(dǎo)出工具類
·Mongoimport:導(dǎo)入工具類
四、MongoDBShell
mongo shell是MongoDB的標(biāo)準(zhǔn)分發(fā)版的一部分。shell提供了一個(gè)完整的數(shù)據(jù)庫MongoDB的接口,讓您可以使用JavaScript存儲(chǔ)在MongoDB中存儲(chǔ)的數(shù)據(jù)環(huán)境,它可以完全訪問語言和所有的標(biāo)準(zhǔn)函數(shù)。一旦數(shù)據(jù)庫服務(wù)啟動(dòng),您可以啟動(dòng)mongo
shell并開始使用MongoDB。這可以在Linux中使用Shell,也可以在Windows中使用命令提示符(以管理員身份運(yùn)行)。
如果在啟動(dòng)服務(wù)時(shí)沒有指定參數(shù),它將連接到名為test的默認(rèn)數(shù)據(jù)庫在本地主機(jī)實(shí)例。數(shù)據(jù)庫將在連接到該數(shù)據(jù)庫時(shí)自動(dòng)創(chuàng)建。MongoDB提供了以下特性如果試圖訪問不存在的一個(gè)數(shù)據(jù)庫,就會(huì)自動(dòng)創(chuàng)建一個(gè)數(shù)據(jù)庫。
五、Securing the Deployment
1.使用身份驗(yàn)證和授權(quán)
這意味著用戶只有在使用憑證登錄時(shí)才能夠訪問數(shù)據(jù)庫它可以訪問數(shù)據(jù)庫。這將禁用對數(shù)據(jù)庫的匿名訪問。用戶后通過身份驗(yàn)證,可以使用授權(quán)來確保用戶只有所需的訪問權(quán)限需要完成手頭的任務(wù)。身份驗(yàn)證和授權(quán)都存在于每個(gè)數(shù)據(jù)庫級(jí)別。用戶存在于a的上下文中單一的邏輯數(shù)據(jù)庫。用戶的信息保存在一個(gè)名為system的集合中。用戶,存在于管理數(shù)據(jù)庫。
這個(gè)集合維護(hù)了對用戶進(jìn)行身份驗(yàn)證所需的憑證它存儲(chǔ)用戶id、密碼和所創(chuàng)建的數(shù)據(jù)庫,以及所需的特權(quán)授權(quán)用戶。MongoDB使用基于角色的方法來進(jìn)行授權(quán)(閱讀、readWrite的角色,readAnyDatabase,等等)。
如果需要,用戶管理員可以創(chuàng)建自定義角色。系統(tǒng)內(nèi)的特權(quán)文檔。用戶集合用于存儲(chǔ)每個(gè)用戶角色。相同的文檔維護(hù)認(rèn)證用戶的憑證。系統(tǒng)中的文檔示例。
用戶收集如下:
這個(gè)文檔告訴我們用戶shak是與數(shù)據(jù)庫實(shí)踐數(shù)據(jù)庫相關(guān)聯(lián)的,它已經(jīng)讀過了在實(shí)踐數(shù)據(jù)庫數(shù)據(jù)庫中的角色和在MyDB數(shù)據(jù)庫中的readWrite角色。請注意,用戶名和關(guān)聯(lián)數(shù)據(jù)庫惟一地標(biāo)識(shí)MongoDB中的用戶,所以如果您有兩個(gè)相同的用戶名稱,但是它們與不同的數(shù)據(jù)庫相關(guān)聯(lián),然后它們被認(rèn)為是兩個(gè)唯一的用戶。因此,一個(gè)用戶可以在不同的數(shù)據(jù)庫上擁有不同的授權(quán)級(jí)別。
可用的角色
·read:為指定的所有集合提供了只讀訪問數(shù)據(jù)庫。.
·readWrite:為指定的任何集合提供了讀寫訪問權(quán)限數(shù)據(jù)庫。
·dbAdmin:用戶能夠在其中執(zhí)行管理操作指定的數(shù)據(jù)庫,例如索引管理,使用ensure索引,下拉索引,reIndex、indexStats、重命名集合、創(chuàng)建集合等。。
·userAdmin:用戶能夠在該操作上執(zhí)行readWrite操作系統(tǒng)。用戶收集指定的數(shù)據(jù)庫。它還支持修改權(quán)限現(xiàn)有用戶或創(chuàng)建新用戶。這實(shí)際上是超級(jí)用戶的角色指定的數(shù)據(jù)庫。。
·clusterAdmin:該角色允許用戶授予對管理操作的訪問權(quán)這將改變或顯示整個(gè)系統(tǒng)的信息。clusterAdmin是只適用于管理數(shù)據(jù)庫。。
·readAnyDatabase:用戶可以從MongoDB的任何數(shù)據(jù)庫中讀取數(shù)據(jù)環(huán)境。。
·readWriteAnyDatabase: 這個(gè)角色類似于readWrite,但它是針對所有數(shù)據(jù)庫的。。
·userAdminAnyDatabase:這個(gè)角色類似于userAdmin角色,但它不適用所有數(shù)據(jù)庫。。
·dbAdminAnyDatabase:這個(gè)角色與dbAdmin相同,但它適用于所有的數(shù)據(jù)庫。
· 從2.6版本開始,用戶管理員還可以創(chuàng)建用戶定義的角色通過在集合級(jí)別和命令中提供訪問權(quán)限來實(shí)現(xiàn)最小特權(quán)的策略的水平。用戶定義的角色作用于創(chuàng)建和創(chuàng)建的數(shù)據(jù)庫。通過數(shù)據(jù)庫和角色名稱的組合惟一地標(biāo)識(shí)出來。所有的用戶定義的角色存儲(chǔ)在系統(tǒng)中。角色集合。
身份驗(yàn)證在缺省情況下是禁用的,因此使用-auth來啟用身份驗(yàn)證。雖然開始mongod,使用mongod——身份驗(yàn)證。在啟用身份驗(yàn)證之前,您需要至少有一個(gè)管理員用戶。正如你看到以上,管理員用戶是負(fù)責(zé)創(chuàng)建和管理其他用戶的用戶。
|
|