服务器配置文件分析

bin目录下的mongod.cfg是服务器的配置文件,文件中主要的配置参数:

1、数据库文件的存放位置

2、服务器日志文件的存放位置

3、默认的IP地址、端口号

设置密码

默认情况下,MongoDB的服务器地址是127.0.0.1,端口号是27017,存储数据库管理员信息的admin数据库是空的,即没有管理员账户,任何客户端可以直接连接服务器,不需要认证。

好处是,用户可以即时上手,不用担心被一堆配置弄的心烦意乱。坏处是,所有人都可以直接访问并修改数据库数据。

1、使用admin数据库,创建一个管理员账户

use admin
db.createUser({user:"chy",pwd:"abc",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})

会提示创建成功。role指定账户角色(权限),db指定此账户管理的是哪个db。因为是roles:[],数组,所以可同时设置多个role。

如果是role中带有AnyDatabase,则可管理所有数据库。

如果role中不带AnyDatabase,则只能管理指定的db。

不管是哪种,这个账户只能进入指定的db。比如权限指定为"userAdminAnyDatabase",db指定为"admin",此账户只能通过数据库admin的验证,不能通过其他数据库的验证。要进入admin数据库后,在admin数据库中管理所有数据库。

"userAdminAnyDatabase"是管理所有数据库,可进行删除某个数据库之类的操作,是管理,并不能对某个数据库进行读写。

mongodb的内置role

1. 数据库用户角色:read、readWrite;
    2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
    3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
    4. 备份恢复角色:backup、restore;
    5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
    6. 超级用户角色:root  
    7. 内部角色:__system

2、修改配置文件mongod.cfg,使用密码。

我们看到默认是注释了的,不使用安全验证。

取消注释,修改如下:

注意空格、缩进,authorization冒号后面有一个空格。

security:
authorization: enabled

3、重启MongoDB服务。

4、

exit    //先退出客户端

mongo

use admin

db.auth("username","password")    //验证密码。1表示通过验证,0表示不通过。

刚才创建的账户可进入所有db。可创建某个db的账户。

db.createUser({user:'chy1',pwd:'abc1',roles:[{role:'readWrite',db:'test'}]})

读写权限,此账户只能操作数据库test,且只能对test进行读写。

创建好之后就可以使用  mongodb://username:password@host[:port]/database  进行连接了(需要先  mongo  进入客户端 )。

注意:

  • MongoDB系统的最高权限是root,根权限
  • 某个数据库的最高权限是dbOwner,数据库所有者,可创建索引、进行读写等操作。
  • MongoDB的数据库是相互独立的,每个数据库都有单独的密码、权限,互不通用。
  • 给某个数据库创建账号,必须限use进入该数据库,然后db.createUser(),要指定roles中的db为该数据库。是在该数据库中创建该数据库的账号,不是说都是在admin数据库中创建账号。在admin数据库中创建的账号只能用于admin数据库的验证,不能用于其他数据库的验证。
  • 可以用db.auth("username","pwd")  验证账户,1表示通过,0表示不通过。

MongoDB 设置参数的更多相关文章

  1. mongoDB启动参数备忘

    本文转载 Mongodb启动命令mongod参数说明   mongod的主要参数有:    基本配置   ----------------------------------------------- ...

  2. window服务器上mongodb的安装与如何将mongodb设置为服务,为mongodb设置管理用户,mongodb连接字符串配置

    最近公司有一个项目模块让用nosql-mongodb替换了,故,对mongodb做了一点研究,然后分享一下! 1.首先说一下安装时的坑 下载mongodb,如果你从官网下载,将会是一件很慢的事情,在公 ...

  3. windows下mongodb设置用户名密码&用python连接

    环境: 主机:WIN10 python版本:3.5 mongodb版本:3.4.2 开发环境:pyCharm mongodb设置用户名密码: 编写mongodb配置文件mongodb.confdbpa ...

  4. FlexSlider插件的详细设置参数 http://www.woothemes.com/flexslider/

    http://www.woothemes.com/flexslider/ FlexSlider插件的详细设置参数 $(window).load(function() { $('.flexslider' ...

  5. sqlplus中常用设置参数

    一.各种设置参数解释 转自http://baike.baidu.com/view/1239908.htm Sql*plus是一个最常用的工具,具有很强的功能,主要有: 1. 数据库的维护,如启动,关闭 ...

  6. pycharm 设置参数,快捷键

    pycharm 设置参数 当编写代码的时候出现红色下划线提示,表示有异常,此时需要导入此模块 参数设置 设置完参数之后执行一下看看效果 这里面0为脚本本身,1为刚才设置的参数hello 快捷键设置 常 ...

  7. JVM的7种垃圾收集器:主要特点 应用场景 设置参数 基本运行原理

    原文地址:https://blog.csdn.net/tjiyu/article/details/53983650 下面先来了解HotSpot虚拟机中的7种垃圾收集器:Serial.ParNew.Pa ...

  8. AOP 如果被代理对象的方法设置了参数 而代理对象的前置方法没有设置参数 则无法拦截到

    AOP 如果被代理对象的方法设置了参数 而代理对象的前置方法没有设置参数 则无法拦截到

  9. 使用nginx服务器如果遇到timeou情况时可以如下设置参数,使用fastcgi: fastcgi_connect_timeout 75; 链接 fastcgi_read_timeout 600; 读取 fastcgi_send_timeout 600; 发请求

    使用nginx服务器如果遇到timeou情况时可以如下设置参数,使用fastcgi: fastcgi_connect_timeout 75;  链接 fastcgi_read_timeout 600; ...

随机推荐

  1. 用python批量下载图片

    一 写爬虫注意事项 网络上有不少有用的资源, 如果需要合理的用爬虫去爬取资源是合法的,但是注意不要越界,前一阶段有个公司因为一个程序员写了个爬虫,导致公司200多个人被抓,所以先进入正题之前了解下什么 ...

  2. VS找不到头文件但是系统路径已经设置

    有时候会出现打不开Include文件的问题,但是在系统包含include路径中已经设置,编译也没问题,就是一直有错误提示 这时候可以尝试在项目上点击右键,选择“下载项目”,然后再选择加载 如果还是不行 ...

  3. 使用Qt画出直方图和分位数图

    https://blog.csdn.net/gudanai/article/details/72136420

  4. python的传参数用法

    #!/usr/bin/python #导入sys模块 import sys print("the first argv:",sys.argv[0],"\n") ...

  5. python + selenium + unittest实现简单的UI自动化

    使用的版本是python 3,其中HTMLTestRunner是修改版本,参考以下博客并下载 https://blog.csdn.net/zhanin123/article/details/78950 ...

  6. web记住我功能的实现

    在web网页中经常可以看到记住我这样的功能,其实现原理是登陆时候在response中写入cookie,发送请求时,取出cookie判断,如果有则说明已经登陆 写cookie Cookie cookie ...

  7. Java基础---Java环境配置

    java 下载:https://www.java.com/zh_CN/ 1.Java安装:jdk9 2. JAVA_HOME 环境变量的配置 在DOS命令行下使用这些工具,就要先进入到JDK的bin目 ...

  8. 大数据之路【第十篇】:kafka消息系统

    一.简介 1.简介 简 介• Kafka是Linkedin于2010年12月份开源的消息系统• 一种分布式的.基于发布/订阅的消息系统 2.特点 – 消息持久化:通过O(1)的磁盘数据结构提供数据的持 ...

  9. K8s-yaml的使用及命令

    YAML配置文件管理对象 对象管理: # 创建deployment资源 kubectl create -f nginx-deployment.yaml # 查看deployment kubectl g ...

  10. 配置 web 内容的访问

    在您的 system1 上的 web 服务器的 DocumentRoot 目录下,创建一个名为 private 的目录,要求如下: 1.从 http://server.group8.example.c ...