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

 注意:

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

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

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

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

超级管理员

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

use.admin
db.createUser({
user: 'admin', // 用户名
pwd: '', // 密码
roles:[{
role: 'root', // 角色
db: 'admin' // 数据库
}]
})

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

开启验证

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

authu=true

重启 MongoDB

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

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

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

输入 mongo:

 

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

登录数据库

// 方式一
mongo
use admin
db.auth('admin', '') // 方式二
mongo admin -u admin -p 123456

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

添加数据库用户

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

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

常用命令

show users  // 查看当前库下的用户

db.dropUser('testadmin')  // 删除用户

db.updateUser('admin', {pwd: ''})  // 修改用户密码

db.auth('admin', '')  // 密码认证

MongoDB 数据库默认角色

数据库用户角色:read、readWrite
数据库管理角色:dbAdmin、dbOwner、userAdmin
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
备份恢复角色:backup、restore
所有数据库角色: readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、
dbAdminAnyDatabase
超级用户角色:root 

pymongo连接需要认证的mongo

# db mongodb
db_mongo_attr = {
'host': '*',
'port': 27,
'database':'tease',
'username':'*v',
'password':'*
} def db_conn(*args):
"""
:return:pymongodb db级别的实例
"""
dbs = pymongo.MongoClient(di['host'],di['port'],)
#dbs = pymongo.MongoClient("mongodb://user:pass@ip:port/databasename")
db = dbs[di['database']]
db.authenticate(di['username'],di['password'])
return db

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

二.注意点

  1.不管是有加密码认证还是没有加密码认证的库只有库里面的没有集合或者集合是空的,在数据库列表都不会显示该数据库

  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. db。collectionName.insert({'1':1}) #随便指定集合,插入数据,要不然集合是空的,是不会把空的库展现在库列表中
  3.在Gui中想创建辛苦,就直接指定认证的库为admin,admin的账号,密码就行,用其他的库认证的连接可以创建新的库,但是不能创建新的集合,相当于不能创建新的库,
因为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. MOOC(7)- case依赖、读取json配置文件进行多个接口请求-模拟接口响应数据(18)

    这里是把传入的请求数据作为响应值返回 # -*- coding: utf-8 -*- # @Time : 2020/2/15 9:47 # @File : do_mock_18.py # @Autho ...

  2. MOOC(6)- case之间存在依赖

    方法1:这里只给出根据依赖字段去匹配响应结果中的值的函数,其他匹配依赖case,对依赖case发起请求见下面的方法2 方法2: from day_20200208_mooc.tools.do_exce ...

  3. JDBC原理之层次结构

    目录 JDBC的层次结构 前言 Collection角色 Statement角色 ResultSet角色 JDBC工作的基本流程 JDBC的层次结构 前言 JDBC API提供了以下接口和类: Dri ...

  4. Hello 2015

    "Yeah It's on. " 前言 Hux 的 Blog 就这么开通了. 跳过废话,直接看技术实现 2015 年,Hux 总算有个地方可以好好写点东西了. 作为一个程序员, B ...

  5. VisualStudioCode通过SSH远程编辑文件

    翻译修改自:https://codepen.io/ginfuru/post/remote-editing-files-with-ssh 在远程服务器上编写文件是一件很糟糕的事情,vim和其他终端编辑器 ...

  6. JXJJOI2018_T3_catch

    题目描述 Lemon因为偶然的原因,当上了警察局长.而一上任,他就碰到了个大麻烦:追捕周克华. 周克华是人尽皆知的抢劫杀人犯,而就在几天前,他在Lemon辖区内的银行门口,枪杀了一名储户后逃之夭夭.L ...

  7. HEALER

    项目介绍: 专注是一款时间管理应用,可以帮你管理时间,制定计划,让你保持专注,从快节奏的当下抽离,进入另一个平和安静的时空,以获得更好的工作和学习效率. 主模块(专注):设置分类.专注时长.简介,点击 ...

  8. HTTP Continuation or non-HTTP traffic

    发现一个 HTTP      Continuation or non-HTTP traffic的数据包,之前没有碰到过.不懂其意义,一看长度,显示1460,与TCP segment of a reas ...

  9. Python计算给定日期的周内的某一天

    先理一下思路:1.weekday会根据某个日期返回0到6的一个数字来表示星期几对吧,0==星期一我们来列一个表: [0,1,2,3,4,5,6] 2.知道了星期几之后,你可以计算出那一周相对于这个0到 ...

  10. iPhone6爆炸真是小概率事件吗?

    前不久,央视新闻报道,根据上海市消费者权益保护委员会统计,2016年9月到11月,共接到8名消费者投诉,反映其苹果手机在正常使用或者正常充电的情况下突然爆炸.此外,苹果手机还被投诉存在自动关机等问题, ...