MongoDB-如何更改当前登录用户的密码?

时间:2019-03-05 21:59:26

标签: mongodb authentication passwords mongodb-security

我正在使用以下凭据登录test数据库

username : testUser
password : pass

用户仅readWrite有权访问数据库。我想将当前用户的密码更改为pass123

我尝试了以下两个选项

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

两者均失败,并分别出现以下错误

  

错误:未经测试授权执行命令

     

错误:更新用户失败:未经测试授权执行命令   {updateUser:“ testUser”,pwd:“ xxx”}

在没有管理员角色帮助的情况下,是否可以更改当前用户的密码?

更新

如果不允许用户更改其他用户的密码,这很有意义。但是为什么限制用户更改自己的密码。

如何处理以下情况?

考虑如果我的公司政策强制所有数据库用户每30天更改一次密码,则根据解决方案,用户必须要求管理员更改密码。

答案:

在管理数据库中,使用changeOwnPassword操作创建一个新角色。

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

创建具有changeOwnPasswordRole角色以及其他角色的新用户

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

登录上述用户凭据

使用以下命令更新自己的密码

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

Change Your Password and Custom Data

How to change my mongoDB user password as non administrator?

这些链接为我提供了上述解决方案,而不是标记为重复的链接。

  

我已经读过How do I change a MongoDB user's password?,它是   有用,但未解决如何更改自己的密码。请删除   DUPLICATE标志。

0 个答案:

没有答案
相关问题