•   MongoDB教程
  • MongoDB快速入门
  • MongoDB历史
  • MongoDB特点
  • MongoDB数据库的优点
  • MongoDB安装配置(Windows)
  • MongoDB安装配置(Ubuntu)
  • MongoDB安装配置(RedHat/CentOS)
  • MongoDB数据建模
  • MongoDB创建数据库
  • MongoDB删除数据库
  • MongoDB创建集合
  • MongoDB删除集合
  • MongoDB数据类型
  • MongoDB插入文档
  • MongoDB查询文档
  • MongoDB更新文档
  • MongoDB删除文档
  • MongoDB投影(选择字段)
  • MongoDB限制记录数
  • MongoDB排序记录
  • MongoDB索引
  • MongoDB聚合
  • MongoDB复制
  • MongoDB分片
  • MongoDB备份与恢复
  • MongoDB部署
  • Java连接MongoDB操作
  • Python连接MongoDB操作
  • PHP连接MongoDB操作
  • Ruby连接MongoDB操作
  • 高级部分
  • MongoDB关联关系
  • MongoDB数据库引用
  • MongoDB覆盖查询
  • MongoDB分析查询
  • MongoDB原子操作
  • MongoDB高级索引
  • MongoDB索引限制
  • MongoDB ObjectId
  • MongoDB Map Reduce
  • MongoDB文本搜索
  • MongoDB正则表达式
  • MongoDB GridFS
  • MongoDB固定循环集合
  • MongoDB自动递增序列
  • 用户及安全
  • MongoDB安全检查表
  • MongoDB认证
  • MongoDB用户
  • MongoDB添加用户
  • MongoDB启用身份验证
  • MongoDB管理用户和角色
  • MongoDB更改用户密码和自定义数据

MongoDB更改用户密码和自定义数据

具有适当权限的用户可以更改自己的密码和自定义数据。 自定义数据存储可选的用户信息。

注意事项

在此过程要生成一个强大的密码,您可以使用openssl实用程序的rand命令。 例如,使用以下选项发出openssl rand,以创建48个伪随机字节的base64编码字符串:

openssl rand -base64 48

先决条件

要修改自己的密码和自定义数据,您必须具有在用户数据库上分别授予changeOwnPassword和changeOwnCustomData操作的权限。

第一步:使用相应的权限连接到MongoDB

使用“先决条件”部分指定的权限连接到 mongod 或 mongos 。

以下过程使用在“启用认证”中创建的用户:myUserAdmin。

$ mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"

第二步:使用适当的权限创建角色

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

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

第三步:添加具有此角色的用户

在test数据库中,使用创建的“changeOwnPasswordCustomDataRole”角色创建一个新用户。 例如,以下操作将创建具有内置角色readWrite和用户创建的“changeOwnPasswordCustomDataRole”的用户。

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

要向现有用户授予新角色,请使用db.grantRolesToUser()。

执行过程

第一步:使用相应的权限连接到MongoDB

使用“先决条件”部分指定的权限连接到 mongod 或 mongos 。

以下过程使用在“启用认证”中创建的用户:myUserAdmin。

$ mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"

要检查您是否具有先决条件部分中指定的权限以及查看用户信息,请使用带有--showPrivileges选项的usersInfo命令。

第二步:更改您的密码和自定义数据

使用db.updateUser()方法来更新密码和自定义数据。

例如,以下操作将用户的密码更改为:KNlZmiaNUp0B,并将自定义数据更改为{title:“Senior Manager”}:

use test
db.updateUser(
   "user123",
   {
      pwd: "KNlZmiaNUp0B",
      customData: { title: "Senior Manager" }
   }
)

上一篇:MongoDB管理用户和角色下一篇:哥,这回真没有了