1. 程式人生 > >mongodb 修改使用者密碼 2種方法

mongodb 修改使用者密碼 2種方法

mongodb的使用者資訊是存放在system.users表中的,修改密碼不能直接更新表資料,這樣的話,存到表裡的密碼是明文的,這就不對了。

1,錯誤做法,直接更新表

檢視複製列印?
  1. > db.system.users.update({"_id" : ObjectId("529e67553992b24438d5e315")},{"user":"tank2","readOnly" : false,"pwd":"123"})  
  2. > db.system.users.find();  
  3. "_id" : ObjectId("529e5f8474b4c660718a70f3"
    ), "user" : "tank1""readOnly" : false, "pwd" : "35dd47abff098f5b4f0b567db8edeac5" }  
  4. "_id" : ObjectId("529e67553992b24438d5e315"), "user" : "tank2""readOnly" : false, "pwd" : "123" }  //這樣就不對了

2,正確做法,利用db.addUser

檢視複製列印?
  1. > db.addUser('tank2','111')  
  2. {  
  3.     "_id" : ObjectId("529e6f1c8d95afd190add450"
    ),  
  4.     "user" : "tank2",  
  5.     "readOnly" : false,  
  6.     "pwd" : "6b4334d2c97c526e6a11b2f9ce1996e0"
  7. }  

有人會問,這個不是新增使用者的方法嗎。不錯這是新增使用者的方法,但是如果使用者名稱相同,密碼不同的話,就會更新密碼。

3,正確做法,利用db.changeUserPassword

檢視複製列印?
  1. > db.changeUserPassword('tank2','test');