MongoDB设置用户名密码登录

原文链接: https://www.jianshu.com/p/237a0c5ad9fa
MongoDB版本 4.2.0
系统:Linux centos7.6

设置超级管理员

添加admin用户以及密码

use.admin  
db.createUser({
  user: 'admin',  // 用户名
  pwd: '123456',  // 密码
  roles:[{
    role: 'root',  // 角色
    db: 'admin'  // 数据库
  }]
})

查看是否创建成功使用 show users

开启密码登录验证

打开配置文件vim /etc/mongo.conf ,添加以下参数:

security:
  authorization: enabled

重启MongoDB

这时再次登录数据库会显示登陆成功,但是输入其他命令的时候却无效,提示没有权限。

登录数据库

// 方式一
mongo
use admin
db.auth('admin', '123456')

// 方式二
mongo admin -u admin -p 123456

通过这种用户密码认证的方式登录数据库之后就可以正常使用数据库了。

添加数据库用户

除了可以给MongoDB设置超级管理员用户以外,我们还可以给每个数据库设置单独的管理员,其只有单独数据库的一定权限。

use test  // 跳转到需要添加用户的数据库
db.createUser({
  user: 'fooadmin',  // 用户名
  pwd: '123456',  // 密码
  roles:[{
    role: 'readWrite',  // 角色
    db: 'test'  // 数据库名
  }]
})

常用命令

show users  // 查看当前库下的用户

db.dropUser('testadmin')  // 删除用户

db.updateUser('admin', {pwd: '654321'})  // 修改用户密码

db.auth('admin', '654321')  // 密码认证

MongoDB 数据库默认角色

数据库用户角色:read、readWrite
数据库管理角色:dbAdmin、dbOwner、userAdmin
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
备份恢复角色:backup、restore
所有数据库角色: readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、
dbAdminAnyDatabase
超级用户角色:root

官方文档:
https://docs.mongodb.com/manual/reference/built-in-roles/

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容