MongoDB用户管理命令

MongoDB用户管理命令

1. 创建用户

1.1. 创建超级管理员

  1. 连接mongodb,进入MongoDB的shell
mongo
  1. 切换数据库到admin数据库
use admin
  1. 创建超级管理员
db.createUser( 
 { user: "admin", 
  customData:{description:"superuser"},
  pwd: "admin", 
  roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] 
 } 
)

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

  1. 创建超级用户
    这里创建一个超级用户,用于管理全部用户的权限
db.createUser(
  {
    user:"root",
    pwd:"root",
    roles:["root"]
  }
)

1.2. 创建普通库管理员

创建一个业务数据库的管理员的用户,这个用户专门负责一个或者几个数据库的增删查改。

# 未进行认证时,不允许创建用户。需要先使用管理员认证
use admin
db.auth('root','root');
# 切换到需要添加库管理员的数据库
use db1
# 一般情况,我们会针对一个库创建一个用户,供java客户端连接
db.createUser({
  user:"zs",
  pwd:"123456",
  customData:{
    name:'jim',
    email:'jim@qq.com',
    age:18,
  },
  roles:[
    {role:"readWrite",db:"db1"}
  ]
})

其中
数据库用户角色,read,readWrite。
数据库管理角色: dbAdmin,dbOwner,userAdmin
集群管理角色: clusterAdmin,clusterManager,clusterMonitor,hostManage。
备份恢复角色: backup,restore。
所有数据库角色: readAnyDatabase。readWriteAnyDatabase,userAdminAnyDatabase,dbAdminAnyDatabase。
超级用户角色: root
内部角色 _system
这样就完成了一个最基本的数据库管理角色的创建。

2. 查看用户

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

show users

3. 修改用户信息

前面的步骤一致,后续的用户增查改删操作不同。

# 切换到admin数据库
use admin
# 进行认证
db.auth('管理员用户名', '管理员密码')
# 切换到用户所在库
use db1
# 进行 増查改删该数据库专有用户
....

注意:在修改用户的信息时,首先需要切换到admin数据库,其次需要进行管理员认证,如果不进行认证或使用普通用户认证。再进行修改用户信息时,会提示需要认证认证失败

3.1. 修改密码

修改用户的密码,需要先切换到用户的库中去,再执行下面的命令进行修改密码

#使用该命令,可以实现对密码的修改。
db.changeUserPassword("username", "xxx")

3.2. 修改用户其他信息

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

4. 删除数据库用户

# 切换到用户所在的库
use db1
# 删除
db.dropUser('zs')
# 检查
show users
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MongoDB 中,可以通过以下方式进行用户管理: 1. 创建用户: 使用 `db.createUser()` 方法创建新用户。例如,创建一个用户名为 "admin",密码为 "password",角色为 "userAdminAnyDatabase" 的用户可以执行以下命令: ``` db.createUser( { user: "admin", pwd: "password", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } ) ``` 2. 删除用户: 使用 `db.dropUser()` 方法删除现有用户。例如,删除名为 "admin" 的用户可以执行以下命令: ``` db.dropUser("admin") ``` 3. 修改用户密码: 使用 `db.changeUserPassword()` 方法修改现有用户的密码。例如,将名为 "admin" 的用户的密码修改为 "newpassword" 可以执行以下命令: ``` db.changeUserPassword("admin", "newpassword") ``` 4. 切换到其他数据库并管理用户: 使用 `use <db>` 命令切换到其他数据库,然后使用上述命令进行用户管理。 5. 查看当前数据库的用户: 使用 `db.getUsers()` 方法查看当前数据库的用户列表。例如,查看当前数据库(如 "admin")的用户列表可以执行以下命令: ``` db.getUsers() ``` 6. 查看指定数据库的用户: 使用 `db.getSiblingDB(<db>).getUsers()` 方法查看指定数据库的用户列表。例如,查看数据库 "mydb" 的用户列表可以执行以下命令: ``` db.getSiblingDB("mydb").getUsers() ``` 7. 用户认证: 使用 `db.auth()` 方法对用户进行身份验证。例如,使用名为 "admin" 的用户和密码 "password" 进行身份验证可以执行以下命令: ``` db.auth("admin", "password") ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值