mongodb数据库怎么开启用户认证模式?mongodb怎么添加用户?

1、部署windows版的mongodb

从官网下载安装包并安装完成后,mongodb的目录如下,数据库的配置是默认,也没有开启用户认证模式,直接开启mongodb服务,就可以连上数据库,这并不是正常的使用方式,只能说适合学习。由于时间充足,我就折腾一下。
在这里插入图片描述

2、windows版mongodb开启用户认证模式

①第一步:创建管理员账户

因为mongodb默认不需要认证就可以连接到数据库,所以应该创建了管理员账户后,再去开启认证模式。假设现在要为当前数据库(ldc)创建管理员账户,先切换到需要创建账户的数据库,再创建,因为帐号是跟着库走的,在指定的库里授权,必须也在指定库里验证(auth)。

>use ldc
switched to db ldc
>db.createUser({user:"abc",pwd:"123456",roles:[{role:"userAdmin",db:"ldc"}]})

在这里插入图片描述
roles:指定用户的角色,可以用一个空数组给新用户设定空角色;在roles字段,可以指定内置角色和用户定义的角色。具体用户权限:

read:允许用户读取指定数据库 readWrite:允许用户读写指定数据库

dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile

userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户

clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。

readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限。

readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限。

userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限。

dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。

root:只在admin数据库中可用。超级账号,超级权限。

创建完管理员账户后,需要重启mongodb server服务,不过先不着急重启,把认证模式打开后一并重启。

②第二步:进入mongodb安装目录的bin目录下,找到一个mongod.cfg的文件,这个就是mongodb数据库的配置文件,打开此文件。
在这里插入图片描述
③ 第三步:把#security: 那一行的“#”号去掉,并在下一行写入authorization: enabled 。 一定要注意缩进,不然你在重启mongodb服务的时候,可能会遇到一个1053的错误,其实就是配置文件的格式出错了。
在这里插入图片描述
修改如下:
在这里插入图片描述
④第四步:重启mongodb服务。按下windows徽标,输入服务。
在这里插入图片描述
打开服务之后,找到MongoDB Server服务,右键重启该服务,如果服务打开失败,检测mongo.cfg文件格式是否错误。
在这里插入图片描述
开启了用户认证之后,如果不认证,依然是可以连接到mongodb数据库的,不过在你使用一些命令的时候可能会被警告或者没有结果,例如下图,没有进行认证直接查询集合的内容,会提示错误;显示所有数据库的时候,不会出结果。
在这里插入图片描述
⑤第五步:使用以下命令进行用户验证:

db.auth("用户名""密码")

在这里插入图片描述
认证成功后,显示数据库和显示集合的命令可以正常显示。

发现了一个问题:我给当前的abc用户的权限是userAdmin,该权限是不能查询用户集合的数据,只是允许插入,也就是添加用户,我添加了一个aaa用户是没有问题。查询的时候会显示没有权限,不过对数据库的正删改查的权限是有的。
在这里插入图片描述
权限大小还是挺关键的,决定了很多操作能不能执行。最直观的感受就是查询数据库和集合的时候,不认证干脆连结果都不给你。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值