2014-11-03 44 views
2

正如文檔中所述,我必須創建一個角色,允許anyResource上的anyAction,但該角色只能在admin數據庫中創建,所以這就是它的樣子:如何讓用戶在mongodb上運行eval命令2.6

use admin 
db.createRole({ 
    role: 'superuser', 
    privileges:[{ 
     resource: {anyResource: true}, 
     actions: ['anyAction'] 
    }], 
    roles: [] 
}) 

下一步是授予此角色給用戶,但這裏的問題是,我不能從另一個數據庫授予從管理數據庫中的角色到用戶,所以這個命令:

db.createUser({ 
    user: 'someusername', 
    pwd: 'somepassword', 
    roles: [{ 
     role: 'superuser', 
     db: 'somedatabase' 
    }] 
}) 

按預期回報:

Error: couldn't add user: No role named [email protected] 

那麼,我應該怎麼做才能允許用戶someusername在somedatabase上運行eval命令?

回答

3

所以,問題出在角色列表不正確。正確的是:

db.createUser({ 
    user: 'someusername', 
    pwd: 'somepassword', 
    roles: ['superuser'] 
}) 
+0

您的問題+答案救了我的一天!謝謝! – 2015-01-19 22:59:51

+0

[This](http://www.claudiokuenzler.com/blog/555/allow-mongodb-user-execute-command-eval-mongodb-3.x#.VcpQ6_ntlBc)對我也很有幫助。 – fracz 2015-08-11 19:52:05