2013-06-29 77 views
2

我使用的是2.4.4版本,後面的程序是http://docs.webfaction.com/software/mongodb.html,我正在使用Mongoid和Ruby on Rails。我也創建了我的「userAdminAnyDatabase」允許使用數據庫用戶,並在使用本很軌mongoid配置:Ruby on Rails Mongoid和Webfaction:未授權查詢(錯誤16550)

production: 
    sessions: 
    default: 
     database: <table> 
     hosts: 
     - localhost:<port> 
     username: <user> 
     password: <password> 

我有服務器--auth標誌乳寧,我也試過與MongoDB的cpmmand行用戶和它的作品,但與已部署的我仍然得到我的Rails應用程序:

失敗,出現錯誤16550:「未經授權的

查詢是有什麼我失蹤?也許我需要一個特殊用戶eate?

+0

也有類似的情況 - 分類錯誤的數據庫名稱... – ITmeze

回答

3

userAdminAnyDatabase角色並不完全符合您的想法。下面介紹一下MongoDB docs說些什麼:

重要:由於用戶使用userAdminAnyDatabase和userAdmin具有創建和除了自己的訪問級別修改權限的能力,這個角色實際上是MongoDB的系統超級用戶。但是,userAdminAnyDatabase和userAdmin不明確授權用戶使用超出用戶管理的任何特權。

給你創建的userAdminAnyDatabase角色的用戶,實際上只允許他們管理數據庫(創建新用戶,刪除用戶,接入系統。*的集合),但它實際上並沒有授權他們來讀取或寫入任何數據。

如果您想創建一個擁有所有管理員權限並且可以在任何數據庫中讀寫的超級用戶,還需要爲用戶提供readWriteAnyDatabase角色。

db.addUser({user: 'username', pwd: 'password', roles: ['readWriteAnyDatabase', 'userAdminAnyDatabase']})