1. MongoDB 版本 v4.0.7
  2. 系统 Win10

 注意:

      要为数据库创建用户,必须先切换到相应的数据库:

      要为数据库创建用户,必须先切换到相应的数据库:

      要为数据库创建用户,必须先切换到相应的数据库:

  1. #先切换
  2. use 数据库名;
  3.  
  4. #再创建
  5. db.createUser({})

超级管理员

设置 admin(给admin这个库在设置密码)

  1. use.admin
  2. db.createUser({
  3. user: 'admin', // 用户名
  4. pwd: '', // 密码
  5. roles:[{
  6. role: 'root', // 角色
  7. db: 'admin' // 数据库
  8. }]
  9. })

设置完成,可以输入 show users 查看是否设置成功。

开启验证

找到 MongoDB 安装目录,打开mongodb.conf文件,找到以下这句

  1. authu=true

重启 MongoDB

  1. kill -9 mongo进程号
    ./mongod -f mongodb.conf
 或者:
  1. 关闭
  2. mongod --journal --shutdown -f /usr/local/mongodb/bin/mongodb.conf
  3. 启动
  4. mongod --journal -f /usr/local/mongodb/bin/mongodb.conf
任务管理器界面

找到 MongoDB 服务,右键重新启动。

这时,我们可以打开 powershell 连接数据库:

输入 mongo:

 

显示连接成功,但是当我们输入其他指令时,不会提示没有权限,但是不会执行:

登录数据库

  1. // 方式一
  2. mongo
  3. use admin
  4. db.auth('admin', '')
  5.  
  6. // 方式二
  7. mongo admin -u admin -p 123456

这时候我们就可以正常访问和操作数据了。

添加数据库用户

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

  1. use test // 跳转到需要添加用户的数据库
  2. db.createUser({
  3. user: 'mts', // 用户名
  4. pwd: '123456', // 密码
  5. roles:[{
  6. role: 'readWrite', // 角色
  7. db: 'qidatas' // 数据库名
  8. }]
  9. })

常用命令

  1. show users // 查看当前库下的用户
  2.  
  3. db.dropUser('testadmin') // 删除用户
  4.  
  5. db.updateUser('admin', {pwd: ''}) // 修改用户密码
  6.  
  7. db.auth('admin', '') // 密码认证

MongoDB 数据库默认角色

  1. 数据库用户角色:readreadWrite
  2. 数据库管理角色:dbAdmindbOwneruserAdmin
  3. 集群管理角色:clusterAdminclusterManagerclusterMonitorhostManager
  4. 备份恢复角色:backuprestore
  5. 所有数据库角色: readAnyDatabasereadWriteAnyDatabaseuserAdminAnyDatabase
  6. dbAdminAnyDatabase
  7. 超级用户角色:root 

pymongo连接需要认证的mongo

  1. # db mongodb
  2. db_mongo_attr = {
  3. 'host': '*',
  4. 'port': 27,
  5. 'database':'tease',
  6. 'username':'*v',
  7. 'password':'*
  8. }
  9.  
  10. def db_conn(*args):
  11. """
  12. :return:pymongodb db级别的实例
  13. """
  14. dbs = pymongo.MongoClient(di['host'],di['port'],)
  15. #dbs = pymongo.MongoClient("mongodb://user:pass@ip:port/databasename")
  16. db = dbs[di['database']]
  17. db.authenticate(di['username'],di['password'])
  18. return db

  要注意的是mongodb的用户是与数据库一体的,所以是在数据库级别进行用户权限验证。  

二.注意点

  1.   1.不管是有加密码认证还是没有加密码认证的库只有库里面的没有集合或者集合是空的,在数据库列表都不会显示该数据库
  2.  
  3.   2.数据库加了密码认证之后,新建数据库,必须先切换到admin这个数据库,进行认证后才能创建集合创建库,而当库是空的,或者库里面的所有集合都是空的,
    则该库不会显示在该库列表中
      步骤:
        1. 用管理员账号,密码登录数据库,或者等登录数据库后,切换到admin这个库,然后进行管理员身份验证,db.auth('adminName',"adminPassword")
       2. use dataName #创建新的库名
    3. db.createUser({user:"cc",pwd:"cc777",roles:[{role:"dbOwner",db:"dataname"}]}) #为新库设置密码和角色
    4. 退出控制台,用新的账号密码登录:mongo -u username -p password dbname(如果这边指定的是新的库,新的库对应的账号密码,就不用第五步)
    5. 切换到刚才新建的数据库,db.auth("新数据库用户名", "新数据库密码" )
    6. dbcollectionName.insert({'1':1}) #随便指定集合,插入数据,要不然集合是空的,是不会把空的库展现在库列表中
  1.   3.Gui中想创建辛苦,就直接指定认证的库为adminadmin的账号,密码就行,用其他的库认证的连接可以创建新的库,但是不能创建新的集合,相当于不能创建新的库,
    因为mongo的库认证对应的是到每一个库当中的,而不是整个mongo库对应一个账户密码
        
        

mongo密码的设置的更多相关文章

  1. ios9怎么设置6位密码 ios9设置6位密码图文教程

    在原来的 iOS 系统中,只有四位数字密码与复杂密码之分,而在 iOS9 系统中却多出了一个六位数字密码,那ios9怎么设置6位密码,今天小编就为大家带来ios9设置6位密码图文教程   在原来的 i ...

  2. Oracle 11g sys,system 密码忘记设置解决办法

    原文:Oracle 11g sys,system 密码忘记设置解决办法 1.启动sqlplus 2.请输入用户名:  sqlplus/as sysdba 3.输入口令: 直接回车 4.连接到: Ora ...

  3. AndroidStudio制作“我”的界面,设置,修改密码,设置密保和找回密码

    前言 大家好,给大家带来AndroidStudio制作"我"的界面,设置,修改密码,设置密保和找回密码的概述,希望你们喜欢 学习目标 掌握修改密码功能的开发,和实现用户密码的修改: ...

  4. Linux免密码登录设置

    Linux免密码登录设置 假设要登录的机器为192.168.1.100,当前登录的机器为192.168.1.101. 首先在101的机器上生成密钥(如果已经生成可以跳过): $ ssh-keygen ...

  5. mongo副本集设置主库权重,永远为主

    mongo副本集设置主库权重,即使主库宕机了再重启也还是主库. cfg = rs.conf()     ------->(查看序列)cfg.members[0].priority = 1 (设置 ...

  6. 无法连接mysql,请检查mysql是否已启动及用户密码是否设置正确

    安装好后,登录后台提示 无法连接mysql,请检查mysql是否已启动及用户密码是否设置正确 检查mysql是否启动netstat -lnpt是否有3306端口? 一 有A 检查/www/wdlinu ...

  7. Oracle密码过期设置和修改密码问题

    Oracle密码过期设置和修改密码问题 学习了:https://jingyan.baidu.com/article/ce09321b5608612bff858ff3.html sqlplus / as ...

  8. Mysql 修改密码和设置远程连接

    [参考文章]:mysql修改root密码和设置权限 1. 修改密码 1.1 set password 登录mysql set password for 用户名@localhost = password ...

  9. MYSQL命令练习及跳过数据库密码进行密码重新设置

        2.看当前所有数据库:show databases; 3.进入mysql数据库:use mysql; 4.查看mysql数据库中所有的表:show tables; 5.查看user表中的数据: ...

随机推荐

  1. Mr.Yu

    在linux下搭建Git服务器 git服务器环境 服务器 CentOS7 + git(version 1.8.3.1)客户端 Windows10 + git(version 2.16.0.window ...

  2. vue面试总结

    https://www.kancloud.cn/hanxuming/vue-iq/728305 https://segmentfault.com/a/1190000016351284 https:// ...

  3. 吴裕雄--天生自然HTML学习笔记:HTML 统一资源定位器(Uniform Resource Locators)

    URL 是一个网页地址. URL可以由字母组成,如"runoob.com",或互联网协议(IP)地址: 192.68.20.50.大多数人进入网站使用网站域名来访问,因为 名字比数 ...

  4. SpringMVC学习笔记二:参数接受

    该项目用来介绍SpringMVC对参数接受的方法: 项目目录树:在前一个项目上修改添加 新添加了Student类和Group类,用来测试整体参数接受 Student.java package com. ...

  5. 国产ROM纷争升级 能否诞生终结者?

    能否诞生终结者?" title="国产ROM纷争升级 能否诞生终结者?"> 相比iOS系统的低硬件高流畅,安卓系统就显得"逼格"低了许多.先不说 ...

  6. 吴裕雄--天生自然python学习笔记:beautifulsoup库的使用

    Beautiful Soup 库简介 Beautiful Soup提供一些简单的.python式的函数用来处理导航.搜索.修改分析树等功能.它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简 ...

  7. struts2和springmvc比较1

    其实都是ssh只是一个是struts2+spring3.0+hibernate,而另外一个是 springmvc+spring3.0+hibernate,纵向来看比较struts2和springmvc ...

  8. Proto3:Arena分配指南

    Arena分配是仅C++有的功能,在使用Protocol Buffer时,它可以帮助你优化你的内存使用,提高性能.在.proto文件中启用Arena分配会在生成的C++代码中添加处理Arena分配的额 ...

  9. ARTS 第 1 周

    每周一道算法.点评一篇英文技术文章.学习一个技术技巧.分享一个技术观点和思路 Algorithm 题目:两数和 给定一个整数数组,返回这两个数字的索引,使它们相加为一个指定的数. 因为是返回两个数字的 ...

  10. Android 添加framework资源包

    为Android系统添加一个新的资源包 概述 传统的Android系统只有一个framework-res.apk资源包,第三方厂商在进行rom定制时会直接修改framework res资源,达到适配目 ...