简介
在使用mongodb时,经常需要修改用户密码,本文将以基于角色和基于用户的两种方法介绍如何实现修改用户密码。
基于角色的方法
1. 连接到admin数据库
首先需要连接到admin数据库,因为只有连接到admin数据库,才能进行用户管理操作。
mongo --port 27017 -u admin -p your_password --authenticationDatabase admin
注意:其中admin为认证数据库,认证数据库默认为特殊的database,而不是一个普通的数据库。
2. 创建角色
在mongodb中,每个用户都属于一个或多个角色,每个角色有不同的权限。因此,需要先创建一个角色,再将该角色授予用户。
use test_database
db.createRole({role: "changePassword", privileges: [
{ resource: { db: "test_database", collection: "" }, actions: [ "changeOwnPassword" ] }
], roles: []})
解释:创建名为changePassword的角色,允许用户更改自己的密码。
3. 创建用户并授予角色
接下来需要创建一个用户并授予changePassword角色,然后再使用该用户连接到数据库。
db.createUser({
user: "test_user",
pwd: "test_password",
roles: ["changePassword"]
})
解释:创建名为test_user的用户,密码为test_password,授予changePassword角色。
4. 修改密码
现在已经创建了一个用户,并授予了changePassword角色,可以使用该用户连接到数据库,并修改自己的密码。
mongo --port 27017 -u test_user -p test_password --authenticationDatabase test_database
db.changeUserPassword("test_user", "new_password")
解释:使用test_user连接到数据库,并使用changeUserPassword方法修改密码为new_password。
基于用户的方法
1. 连接到数据库
连接到数据库
mongo
2. 修改密码
使用updateUser方法修改密码。
use test_database
db.updateUser("test_user", {pwd: "new_password"})
解释:使用updateUser方法修改test_user的密码为new_password。
总结
修改mongodb用户密码有两种方法,基于角色和基于用户。基于角色的方法需要先创建角色,再将角色授予用户。而基于用户的方法直接使用updateUser方法修改用户密码即可。