Windows环境下Mongodb设置账户密码

基于业务需求,18年开发了一些小型爬虫。因为安装简单加上想多学点nosql相关的知识,于是在本地使用了MongoDB 4.0进行存储。由于之前的数据并不太重要,再加上只是用于存储使用,便任其裸奔。最近要基于业务数据进行可视化开发工作,再往前段时间也爆出了未设置账户密码的数据泄露新闻,于是尝试对本地的MongoDB数据库设置用户密码。
默认情况下,MongoDB是没有超级管理员账户的,除非已经再admin中创建了用户并修改了配置文件,否则不用进行任何认证即可访问、修改数据。

设置用户管理员

  1. 管理员身份打开cmd
  2. 切换到 MongoDB 安装路径(...\Mongodb\bin)
  3. cmd中运行mongo.exe
  4. use admin 切换到admin数据库
  5. db.createUser({user:"myAdmin",pwd:"666666",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})创建任何数据库上的用户管理员账户和密码。

MongoDB内置的数据库角色有:
1. 数据库用户角色:read、readWrite;
2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 备份恢复角色:backup、restore;
5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超级用户角色:root
7. 内部角色:__system
引用自: https://www.cnblogs.com/qk2014/p/9253506.html

  1. 使用db.auth({user: "myAdmin", pwd: "666666"})命令可以查看用户是否成功,成功返回1。
    至此,用户管理员创建成功,这里创建的是可以管理任何数据库的角色。
    但目前不使用用户名仍然可以直接访问、修改所有数据库。

修改配置文件

还是安装目录下,用编辑器打开mongod.cfg,取消 security的注释,修改成:
security: authorization: enabled
管理员模式打开cmd,使用如下命令重启MongoDB服务:
net stop Mongodb
net start Mongodb
再次连接数据库就需要账户和密码验证了。

针对具体数据库创建账户、密码

同第一步的流程,运行mongo.exe进入操作界面:

  1. 使用use 数据库名字切换到特定数据库
  2. 运行 db.createUser({user:"dboperator",pwd:"666666",roles:[{role:"readWrite",db:"admin"}]})给数据库创建了dboperator角色,只对该数据库拥有读写的权限。

修改Robo 3T中的连接设置

我的图形客户端使用的是Robo 3T,之前使用的一直是默认连接。经过本文的一番设置之后,默认连接肯定是失效了。


image.png

在如图界面设置了用户密码及访问的数据库之后,点击 test 测试连接,通过后保存即可。
之后通过修改过的连接就可以很轻松得访问用户对应的数据库了,可以看到角色不同,所能查看的数据库范围也不尽相同。


image.png

image.png

你可能感兴趣的:(Windows环境下Mongodb设置账户密码)