joh*_*sam 1 authentication change-password mongodb
我知道我可以通过以MongoDB管理员身份运行db.changeUserPassword()来更改用户密码。但是,作为没有管理员权限的用户,我可以仅使用自己的帐户更改密码吗?
谢谢,
尽管Gergo提供的解决方案有效。但是我必须创建一个新角色才能正常工作。我认为changeOwnPassword应该是内置的特权,不需要其他管理工作。在MongoDB中,仅仅为了能够更改用户自己的密码而创建专用角色是过大的。
如果您具有必要的特权,则可以更改自己的密码。您可以通过运行以下命令来验证您是否具有必需的特权:
db.runCommand(
{
usersInfo:"username",
showPrivileges:true
}
)
Run Code Online (Sandbox Code Playgroud)
如果包含changeOwnPassword,则可以更改密码:
db.runCommand(
{ updateUser: "username",
pwd: "password"
}
)
Run Code Online (Sandbox Code Playgroud)
您可以在MongoDB文档中找到更多信息。
在管理数据库中,使用changeOwnPassword 操作创建一个新角色。
use admin
db.createRole(
{ role: "changeOwnPasswordRole",
privileges: [
{
resource: { db: "", collection: ""},
actions: [ "changeOwnPassword" ]
}
],
roles: []
}
)
Run Code Online (Sandbox Code Playgroud)
创建一个具有changeOwnPasswordRole角色和其他角色的新用户
use test
db.createUser(
{
user:"user123",
pwd:"12345678",
roles:[ "readWrite", { role:"changeOwnPasswordRole", db:"admin" } ]
}
)
Run Code Online (Sandbox Code Playgroud)
登录上述用户凭据
使用以下命令更新自己的密码
db.updateUser("user123",{pwd: "pass123"})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3268 次 |
| 最近记录: |