How to change my mongoDB user password as non administrator?

▼魔方 西西 提交于 2019-12-13 19:13:33

问题


I understand I can change a user's password by running db.changeUserPassword() as an MongoDB administrator. However, as a user with no administrator privilege, can I change my password just with my own account?

Thanks,

Although solution provided by Gergo worked. But I had to create a new role in order for it to work. I thought changeOwnPassword should be a built in privilege and not require additional admin work. Creating a dedicated role just for the purpose to be able to change user's own password is overkill in MongoDB.


回答1:


If you have the necessary privileges, you can change your own password. You can verify that you have the necessary privileges by running this command:

db.runCommand(
  {
    usersInfo:"username",
    showPrivileges:true
  }
)

If it contains changeOwnPassword, then you can change the password:

db.runCommand(
    { updateUser: "username",
      pwd: "password"
    }
)

You can find more information in the MongoDB documentation.




回答2:


In the admin database, create a new role with changeOwnPassword action.

use admin
db.createRole(
   { role: "changeOwnPasswordRole",
     privileges: [
        {
          resource: { db: "", collection: ""},
          actions: [ "changeOwnPassword" ]
        }
     ],
     roles: []
   }
)

create a new user with changeOwnPasswordRole role and along with other roles

use test
db.createUser(
   {
     user:"user123",
     pwd:"12345678",
     roles:[ "readWrite", { role:"changeOwnPasswordRole", db:"admin" } ]
   }
)

login the above user credentials

Use the below command to update own password

db.updateUser("user123",{pwd: "pass123"})


来源:https://stackoverflow.com/questions/23849145/how-to-change-my-mongodb-user-password-as-non-administrator

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!