美文网首页
Windows环境下Mongodb设置账户密码

Windows环境下Mongodb设置账户密码

作者: mrwoody | 来源:发表于2019-04-12 16:05 被阅读0次

    基于业务需求,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设置账户密码

          本文链接:https://www.haomeiwen.com/subject/tmpcwqtx.html