帮助中心/最新通知

质量为本、客户为根、勇于拼搏、务实创新

< 返回文章列表

【服务器相关】MongoDB 数据库基础 之 用户管理

发表时间:2025-06-16 03:46:00 小编:主机乐-Yutio

小小最近接触了MongoDB,所以这里开始学习MongoDB,之用户管理模块的相关内容。

进入MongoDB的Shell

这里输入如下的命令,进入MongoDB的shell


mongo

切换数据库


use admin

使用如上的命令,切换数据库到admin数据库。

创建超级管理员用户

创建超级管理员权限的用户


db.createUser({ user: "admin", customData:{description:"superuser"},pwd: "admin", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]} )

其中各个字段解释如下

  • user字段: 新用户的名字。
  • pwd 字段 用户的密码
  • cusomData 字段,任意内容,可以是用户名的全民介绍。
  • roles 字段 指定用户的角色,用于给一个空数组,给新用户设定空的角色,在roles字段,可以指定设置相关的角色。
  • db 数据库的名字,用于管理数据库。

创建超级用户

这里创建一个超级用户,用于管理全部用户的权限


db.createUser({user:"root",pwd:"pwd",roles:["root"]})

创建一个业务数据库的管理员的用户

这个用户专门负责一个或者几个数据库的增删查改。


> db.createUser({user:"user001",pwd:"123456",customData:{name:'jim',email:'jim@qq.com',age:18,},roles:[{role:"readWrite",db:"db001"},{role:"readWrite",db:"db002"},'read'// 对其他数据库有只读权限,对db001、db002是读写权限]})

其中

  • 数据库用户角色,read,readWrite。
  • 数据库管理角色: dbAdmin,dbOwner,userAdmin
  • 集群管理角色: clusterAdmin,clusterManager,clusterMonitor,hostManage。
  • 备份恢复角色: backup,restore。
  • 所有数据库角色: readAnyDatabase。readWriteAnyDatabase,userAdminAnyDatabase,dbAdminAnyDatabase。
  • 超级用户角色: root
  • 内部角色 _system

这样就完成了一个最基本的数据库管理角色的创建。

查看和创建用户

使用如下的命令,进行查看和创建用户


show users

使用该命令可以实现对用户的查看和创建用户。

修改密码


use admindb.changeUserPassword("username", "xxx")

使用该命令,可以实现对密码的修改。

修改密码和用户信息


db.runCommand({updateUser:"username",pwd:"xxx",customData:{title:"xxx"}})

删除数据库用户


use admindb.dropUser('user001')

创建其他数据库管理员


// 登录管理员用户use admindb.auth('admin','admin')// 切换至db001数据库use db001// ... 増查改删该数据库专有用户

核心,启用权限验证

权限设定完成以后,需要输入如下的命令,用于启用权限验证。


mongo --auth

所有的修改,都需要重写启动mongodb

所有的修改,都需要重写启动mongodb,才可以生效


net stop mongodb;net start mongodb;

小小最近接触了MongoDB,所以这里开始学习MongoDB,之用户管理模块的相关内容。

进入MongoDB的Shell

这里输入如下的命令,进入MongoDB的shell


mongo

切换数据库


use admin

使用如上的命令,切换数据库到admin数据库。

创建超级管理员用户

创建超级管理员权限的用户


db.createUser({ user: "admin", customData:{description:"superuser"},pwd: "admin", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]} )

其中各个字段解释如下

  • user字段: 新用户的名字。
  • pwd 字段 用户的密码
  • cusomData 字段,任意内容,可以是用户名的全民介绍。
  • roles 字段 指定用户的角色,用于给一个空数组,给新用户设定空的角色,在roles字段,可以指定设置相关的角色。
  • db 数据库的名字,用于管理数据库。

创建超级用户

这里创建一个超级用户,用于管理全部用户的权限


db.createUser({user:"root",pwd:"pwd",roles:["root"]})

创建一个业务数据库的管理员的用户

这个用户专门负责一个或者几个数据库的增删查改。


> db.createUser({user:"user001",pwd:"123456",customData:{name:'jim',email:'jim@qq.com',age:18,},roles:[{role:"readWrite",db:"db001"},{role:"readWrite",db:"db002"},'read'// 对其他数据库有只读权限,对db001、db002是读写权限]})

其中

  • 数据库用户角色,read,readWrite。
  • 数据库管理角色: dbAdmin,dbOwner,userAdmin
  • 集群管理角色: clusterAdmin,clusterManager,clusterMonitor,hostManage。
  • 备份恢复角色: backup,restore。
  • 所有数据库角色: readAnyDatabase。readWriteAnyDatabase,userAdminAnyDatabase,dbAdminAnyDatabase。
  • 超级用户角色: root
  • 内部角色 _system

这样就完成了一个最基本的数据库管理角色的创建。

查看和创建用户

使用如下的命令,进行查看和创建用户


show users

使用该命令可以实现对用户的查看和创建用户。

修改密码


use admindb.changeUserPassword("username", "xxx")

使用该命令,可以实现对密码的修改。

修改密码和用户信息


db.runCommand({updateUser:"username",pwd:"xxx",customData:{title:"xxx"}})

删除数据库用户


use admindb.dropUser('user001')

创建其他数据库管理员


// 登录管理员用户use admindb.auth('admin','admin')// 切换至db001数据库use db001// ... 増查改删该数据库专有用户

核心,启用权限验证

权限设定完成以后,需要输入如下的命令,用于启用权限验证。


mongo --auth

所有的修改,都需要重写启动mongodb

所有的修改,都需要重写启动mongodb,才可以生效


net stop mongodb;net start mongodb;

以上就是MongoDB 用户管理的详细内容,更多关于MongoDB 用户管理的资料请关注其它相关文章!


联系我们
返回顶部