MongoDB2.6 新特性


MongoDB 2.6 已經在今天發布,當然,關注MongoDB的同志自然知道這個消息。

整個MongoDB2.6,個人覺得認證系統是一個重新設計的系統。當然,MongoDB 2.4.6開始,就已經在嘗試新的基於Role的認證方式了,但是真正的成熟還是在2.6.0這個版本。

什么是基於角色Role的認證系統?

在以往的MongoDB中,官方一直推薦MongoDB應該在一個Trust的環境下運行,對於認證和安全性上的考慮是不充分的。

(MongoDB的安全性和讀寫的完整性以前一直被人詬病,WriteConcern解決了寫數據的安全性,這次的RoleBase的認證機制,在一定程度上提高了MongoDB的安全性)

現在在MongoDB中創建的User,除了有用戶名,密碼等傳統屬性之外,還有一個Role的概念。

每個Role的操作權限是不同的,而且,根據細化的配置,可以將每個Role的權限定義的非常詳細,

Role可以查詢,修改某個數據庫,某個數據表,都可以做到小粒度的定義。

每個用戶可以同時擁有多個Role,這樣的話,管理員可以對於各個用戶的權限做到非常精確的控制了。

MongoDB的 具體實現 Role:

每個Role可以有多個Privilege,每個Privilege指定了可以訪問的資源(可以指定數據集,數據庫,精確到具體的某個數據集)

對於資源的可以執行的操作(Action),例如 數據集的查找 或者 更新。對於各種的操作已經做到非常小的粒度的細化了。

例如 添加用戶 和 刪除用戶 已經是兩個操作了(Action),而不是通常理解的,增刪改是同樣的操作。

(當然,可能也有人認為如此細化對於管理者來說也是一種負擔。不過一個Role一旦精心設計之后,就可以分配給不同用戶,一勞永逸了)

 

TextSearch全文檢索

這個功能在 2.4.6里面就有的功能,這次的變化是,將這個TextSearch的放入了Aggerate里面了。

換句話說,原來的全文檢索的結果是孤立的,現在可以作為聚合檢索的一個部分了,文本檢索的結果可以作為其他聚合操作的輸入數據。

 

作為MongoDB5年里程碑的這個版本,還有其他很多對以往功能的增強。

作為一個長期觀察MongoDB的人來說,我個人認為,現在是大家可以嘗試MongoDB的一個時間點了。

2.6.0以前的版本的確有很多詬病,除了前面說過的讀寫的安全之外,還有很多設計上的問題。

經過2.4的很多演化后,很多東西都定型了:

主從(Master-Slaver)模型 被 Replication模型代替

加入基於Role的認證后,可以自定義角色(當然,系統也有一些內置的角色)

全文檢索(很遺憾,不支持中文)的強化 具有特色的 地理聚合(很多處理地理坐標的內置函數)

TLL數據集(數據集里面的記錄會慢慢自動刪除掉,有點緩存的意思)Capped數據集(固定大小的數據集,在存儲和讀寫上提高效率,犧牲靈活性)

Sharding支持了ShardKey

索引的內容豐富了不少,特別是有了text屬性的索引,對於全文檢索的幫助很大

 

最后,我想找個喜歡研究 C# MongoDB 的人,能夠用業余時間和我一起將 MongoDB 的管理工具做下去

https://github.com/magicdict/MagicMongoDBTool

如果大家都願意參與開發,我可以找台服務器,運行一些MongoDB的數據庫做測試用。

據說在國外MongoDB的DBA很熱,國內的情況不樂觀,學好英語,如果有機會可以去國外找個機會。。。

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM