2013-04-30 37 views
8

我的生產環境中,我的MongoDB是啓動和運行人員和數據庫管理員要求我們改變我們使用身份驗證的密碼。這樣做的一種方法是在change passwordMongoDB中更改密碼爲現有用戶

> db.auth("app_user", "somepassword") 
db.addUser("app_user", "new password") 

描述這是一樣好添加新用戶再次使用新密碼運行adduser命令。

我知道我必須用--auth選項重新啓動mongod,一旦我按照in的描述添加新用戶,但由於這是生產環境,我無法重新啓動服務器。有沒有其他的選擇?或者,如果我的做法是錯誤的如何在MongoDB中

+0

如果您從無身份驗證轉爲授權,則只需重新啓動 - 您無需重新啓動。 – 2013-04-30 15:13:30

+0

顯然你還需要重新啓動時添加/更新用戶到非認證mongod(是的,它仍然可以在特定的數據庫上對用戶進行認證) – Benoit 2016-11-25 15:13:11

回答

1

更改密碼,您鏈接到一個問題詢問添加安全認證功能的MongoDB其中包括啓動「的mongod」與選項--auth。由於您已經使用--auth運行,因此在您的方案中重新啓動不是必需的。

只需更改用戶密碼,你會被訂走。

+1

感謝Asya,但它是更改密碼的唯一方法嗎? 「adduser」有點誤導。 – 2013-05-02 03:31:51

+1

我同意它不是最好的命令名稱,但addUser會創建用戶,如果他們不存在或更改他們的密碼,如果他們確實存在。 – 2013-05-02 16:02:31

+0

從2.4開始,這似乎不再適用了'JavaScript執行失敗:用戶已經存在該用戶名/ userSource組合' – UpTheCreek 2013-05-07 06:32:00

0

如果你已經改變了安全設置10配置文件,您將無法更改密碼。要做到這一點,設置authorizationdisabled

停止mongod服務:

$ sudo service mongod stop 

打開Mongo配置文件(路徑可能不同系統上):

Linux的

配置文件路徑: 「/etc/mongod.conf」

的Windows

配置文件路徑:「C:\ Program Files文件\ MongoDB的\服務器\ 3.6 \ mongod的。CFG」

查找authorization並將其設置爲disabled

security: 
    authorization: enabled 

變化:

security: 
    authorization: disabled 

現在開始Mongo服務:

$ sudo service mongod start 

,並從內部改變密碼Mongo殼:

> use mydb 
> db.updateUser("myUser", {pwd: "myNewPassword" }) 

現在你可以設置authorization回那是什麼。只需停止Mongo服務,更改設置並啓動服務。