2015-03-25 154 views
0

的MongoDB 2.6.5,我想在我的Admin DB創建Admin用戶,通過運行此代碼:的MongoDB 2.6.5創建管理員角色

use admin 
db.createUser(
    { 
     user: "MY_ADMIN_USER", 
     pwd: "SOME_STROG_PASSWORD", 
     roles: [ { 
        role: "userAdminAnyDatabase", 
        db: "admin" 
       } ] 
    } 
); 

但是,當我這樣做,我得到此錯誤:

Error: couldn't add user: not authorized on admin to 
    execute command 
    { 
    createUser: "MY_ADMIN_USER", 
    pwd: "xxx", 
    roles: [{ 
       role: "userAdminAnyDatabase", 
       db:  "admin" 
       }], 
    digestPassword: false, 
    writeConcern: { 
        w:"majority", 
        wtimeout: 30000.0 
        } 
    } 

登錄到我的應用程序的數據庫時,我擁有所有權限。

但在管理數據庫,它看起來像我沒有。

謝謝回答。

+0

您正在使用什麼憑證來運行db.CreateUser?看起來這個用戶在Admin數據庫上沒有讀/寫權限。如果您嘗試將這些授予該用戶會發生什麼? – Jaco 2015-03-25 09:09:57

+0

那麼,如果它是你說的操作系統證書 - 那麼它就是'root'。關於mongo數據庫憑證,我只是用'mongo'登錄並且沒有身份驗證。 – DanielZiv 2015-03-25 22:38:02

回答

2

OK!所以我發現了這個問題。

如果你遇到類似的東西,你可以用root憑據baypass它。

當使用root用戶運行vi /etc/mongod.conf進入配置文件。

chnage的auth假值。現在要小心,因爲這可能是一個重大的安全問題。

我建議你關閉相關端口,而做這件事情..

重啓蒙戈服務以應用更改:

sudo service mongod restart 

登錄到您的MongoDB管理數據庫,然後創建運行命令用戶。

db.createUser(
    { 
     user: "MY_ADMIN_USER", 
     pwd: "SOME_STROG_PASSWORD", 
     roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] 
    } 
); 

所以現在你可以..

註銷, 改變auth參數回真,並重新啓動蒙戈服務(並打開我foced您關閉笑的端口)。

相關問題