MongoDB数据库身份认证

一、开启mongoDB数据库认证模式

安装好mongoDB数据库之后,默认不开启身份认证模式。

所以我们需要删除原有的mongodb服务,重新设置mongodb开启认证,并且重新安装mongodb服务。

针对windows用户,具体步骤如下(未开启认证模式下):

  1. 以系统管理员身份运行powershell;
  2. 连接数据库:,命令行直接键入mongo;
  3. 查看数据库 : show dbs;
  4. 切换到admin数据库: use admin;
  5. 创建超级管理员账户:db.createUser({user:"root",pwd:"root",roles:["root"]});
  6. 切换到其他数据库,比如blog:use blog;
  7. 对于具体数据库创建普通账号:db.createUser({user:"你设置的用户名",pwd:"你设置的密码",roles:["readWrite"]});
  8. 卸载mongodb服务:
    1. 停止服务: net stop mongodb;
    2. mongod --remove;
  9. 重新创建认证模式的mongodb服务并安装:

    mongod --logpath="F:\MongoDB\MongoDB\Server\4.2\log\mongodb.log" --dbpath="F:\MongoDB\MongoDB\Server\4.2\data" --install --auth

    注意:"F:\MongoDB\MongoDB\Server\4.2\"替换成你的mongdb的安装目录

  10. 启动mongodb服务: net start mongodb
  11. 以认证方式连接数据库(注意:用户名和密码要和后面的数据库名称对应): mongo --port 27017 -u "用户名" -p "密码" --authenticationDatabase "数据库名称"

二、以后新建数据库需要先开启认证

  1.  命令行输入:mongo --port 27017 -u "超级管理员账户" -p "超级管理员密码" --authenticationDatabase "admin"
  2. 切换到新建的数据库(例:blog):use blog,如果不存在数据库那么use命令会自动新建该数据库
  3. 创建用户:roles支持输入对象数组,为多个数据库设置同样的用户名和密码,且分配不同的角色,也就是权限级别,这些权限是固定的选项值,见下方代码块
  4. 认证:db.auth("用户名","密码"),返回1表示认证成功
  5. 之后使用mongocompass访问或者使用mongoose包访问数据库时,都需要携带用户名密码并指定需要认证的数据库名称
db.createUser({
    user: '用户名',
    pwd: '密码',
    roles: [{
        role: 'readWrite',
        db: 'blog'
    }, {
        role: 'root',
        db: 'test'
    }]
})

 

 

 

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值