mongodb下载地址:官方下载
IDE工具:Robo 3T:官方下载

windows系统要求64位,最低2g内存,推荐8g内存及以上

安装过程没有需要配置的地方,直接下一步到结束,如果想要方便可以在环境变量中Path追加mongodb安装文件的bin目录

在想要保存数据库的盘符新建文件夹mongodb 包含两个子文件夹 data和log及一个mongod.cfg文件,log文件夹新建文本改为mongo.log

其中mongod.cfg文件内容如下(本人用虚拟机只有一个C盘):

dbpath=C:\mongodb\data
logpath=C:\mongodb\log\mongo.log
logappend=true
directoryperdb=true
auth=false
#port=55600

#表示忽略该行,本示例没有使用自定义端口,将采用默认端口27017,如果设置了端口号 ,之后连接mongo都需要指定服务器和端口号

以管理员身份运行命令提示符,如果已经配置过环境变量,直接运行 mongod,否则需要移动到mongodb安装目录的bin文件夹再执行mongod

如果报以下异常

可去 https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=48145 下载vc_redist.x64.exe安装即可

执行以下命令创建并开启MongoDB服务(需要管理员权限)

sc create MongoDB binPath= "C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe --config=C:\mongodb\mongod.cfg --service"

net start MongoDB

接下来打开MongoDB Shell工具:在命令提示符中输入 mongo  运行(如果已经设置端口12345,此处为  mongo --port 12345)

此时的数据库是没有权限控制的,任何人都可以登录到数据库

输入 show dbs; 显示所有数据库

输入 use admin; 使用admin数据库 分号是可选的

输入 show collections 显示所有文档(关系型数据库中表的概念)

输入 show users 显示所有用户,当前没有任何账户

接下来创建账户,确保是在use admin的情况下:

db.createUser({
  user:"root",
  pwd: "123456",
  roles: [ { role: "root", db: "admin" }]
})

db.createUser({
  user:"sa",
  pwd: "123456",
  roles: [ { role: "userAdminAnyDatabase", db: "admin" },{ role: "read", db: "clearimg" } ]
})

注册用户登录权限(这几个账号是在admin数据库下,连接服务器即使有其他数据库权限也必须连接到admin)

db.auth("root","123456")

db.auth("sa","123456")

添加一个新的数据库 mytest,只需要对mytest数据库进行文档操作,存在则调用,不存在则创建

在mytest数据库新建账号test,并注册权限

db.createUser({
  user:"test",
  pwd: "123456",
  roles: [{ role: "read", db: "mytest" } ]
})

db.auth("test","123456")

切换到admin数据库添加test2用户使其只拥有mytest数据库的read权限

use mytest
db.createUser({
  user:"test2",
  pwd: "123456",
  roles: [{ role: "read", db: "mytest" } ]
})
db.auth("test2","123456")

用show users 查看当前数据库拥有的账户

最后用exit或者ctrl + c退出MongoDB Shell   到此为止数据库已经拥有对应的账户,没有开启权限验证

接下来停用原有MongoDB服务(需要管理员权限)

net stop MongoDB

并更新mongod.cfg文件中的auth=true,执行启动服务的指令(需要管理员权限)

net start MongoDB

现在已经开启权限认证了,再次登录打开MongoDB Shell ,输入show dbs,发现报异常

exit退出MongoDB Shell,改用账号登录服务器

mongo -u sa -p 123456 localhost:27017/admin

尝试登录时不带数据库名,发现报权限错误

切换账号test2登录  分别尝试连接到admin 和mytest会发现test2可以登录admin而不是mytest,但test2只有mytest的读取权限,操作admin数据库也是非法的

尝试用test账号登录mytest数据库并尝试操作其他数据库

备份和恢复角色:bakcup restore
所有数据库角色:

read 指定数据库的只读权限,拥有以下权限:

readWrite 拥有指定数据库的读写权限,除了具有read权限,还拥有以下权限:

read和readWrite只要就是对库中表的操作权限

dbAdmin 指定数据库的管理权限

userAdmin 指定数据库的用户管理权限

clusterAdmin 集群管理权限

readAnyDatabase 任何数据库的只读权限(和read相似)

readWriteAnyDatabase 任何数据库的读写权限(和readWrite相似)

userAdminAnyDatabase 任何数据库用户的管理权限(和userAdmin相似)

dbAdminAnyDatabase 任何数据库的管理权限(dbAdmin相似)

创建用户 db.createUser({user:"username",pwd: "pwd",roles: [ { role: "rolename", db: "dbname" },{ role: "rolename2", db: "dbname2" } ]})
修改密码 db.changeUserPassword('usname','newpwd');
添加角色 db.grantRolesToUser("username", [{ role: "rolename",db:"dbname"}] )
删除权限 db.revokeRolesFromUser("username",[{ role: "rolename",db:"dbname"}])
删除用户 db.dropUser("username")

mongodb安装与权限配置的更多相关文章

  1. mongoDB在windows下基于配置文件的安装和权限配置方式

    下载mongoDB  http://www.mongodb.org/downloads 根据操作系统,选择需要下载的安装包 添加mongodb 安装目录 将解压的文件夹中内容拷贝,存放在想要安装的文件 ...

  2. Linux下Mongodb安装和启动配置 原

    1.安装 略 2.配置 01.mkdir /usr/local/mongodb/data 0.touch /usr/local/mongodb/logs 03.cd /usr/local/mongod ...

  3. CentOS7 MongoDB安装及基本配置

    一.安装包的获取 1.创建文件: vi /etc/yum.repos.d/mongodb-org-4.0.repo 2.在上一步创建的文件中,写入如下内容: [mongodb-org-4.0] nam ...

  4. ubuntu 中 mongodb 数据读写权限配置

    首先,我们先对mongodb 数据库的权限做一点说明: 1 默认情况下,mongodb 没有管理员账号 2 只有在 admin 数据库中才能添加管理员账号并开启权限 3 用户只能在所在的数据库中登录, ...

  5. Linux下Mongodb安装和启动配置

    1.下载安装包 wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-1.8.2.tgz 下载完成后解压缩压缩包 tar zxf mongod ...

  6. Linux下Mongodb安装和启动配置 转载

    原文地址:https://www.cnblogs.com/Jimmy104/p/6181899.html 以下文章为转载,感谢网友,原文链接 http://blog.csdn.net/yuwenrul ...

  7. python开发遇到的坑(2)mongodb安装路径权限问题

    个人比较懒,Mac 电脑直接使用命令行安装,brew install mongodb,但是遇到两个问题,其一: Error: The following directories are not wri ...

  8. MongoDB安装及环境配置

    一.什么是MongoDB MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB 旨在为WEB应用提供 ...

  9. Linux FTP的安装与权限配置

    ftp安装部分,操作步骤如下: 1.切换到root用户 2.查看是否安装vsftp,我这个是已经安装的. [root@localhost vsftpd]# rpm -qa |grep vsftpd v ...

随机推荐

  1. python .bat

    传值给.bat os.system('%s %s %s %s %s' % ('image_dispose.bat', change_photo,dic['width'], '-resize', cha ...

  2. [Windows Powershell]-学习笔记(6)

    Powershell环境变量 传统的控制台一般没有象Powershell这么高级的变量系统.它们都是依赖于机器本身的环境变量,进行操作 .环境变量对于powershell显得很重要,因为它涵盖了许多操 ...

  3. 一步一步学EF系列二【Fluent API的方式来处理实体与数据表之间的映射关系】

    EF里面的默认配置有两个方法,一个是用Data Annotations(在命名空间System.ComponentModel.DataAnnotations;),直接作用于类的属性上面,还有一个就是F ...

  4. peeping tom 在渗透信息收集前的作用。

    原本想写个截屏类的脚本,发现已经有了这个 py脚本   名字叫作: peeping tom 想要了解详细,戳:https://bitbucket.org/LaNMaSteR53/peepingtom/ ...

  5. linux 性能测试工具Lmbench

    Lmbench是一套简易,可移植的,符合ANSI/C标准为UNIX/POSIX而制定的微型测评工具.一般来说,它衡量两个关键特征:反应时间和带宽.Lmbench旨在使系统开发者深入了解关键操作的基础成 ...

  6. Django学习笔记之Django的url反向解析

    0x00 URL反向解析和三种不同的反向解析方式 Django中提供了关于URL的映射的解决方案,可以做两个方向的使用: 1.普通解析过程:由客户端的浏览器发起一个url请求,Django根据URL解 ...

  7. Android中的颜色值

    1.在android中经常看到设置的颜色为八位的十六进制的颜色值,例如: 1 2 3 public static final class color {     public static final ...

  8. Object类包含方法

    9个方法: 1. clone() 2. equals() 3. finalize() 4. getClass() 5. notify() 6. notifyAll() 备注:5.6多归于一个 7. h ...

  9. 延迟环境变量扩展(bat)

    延迟环境变量扩展(bat) 之前遇到一些环境变量的问题,简单记录下 From:http://www.cnblogs.com/dongzhiquan/archive/2012/09/05/2671218 ...

  10. Linux安全基线检查脚本

    基线检查内容: 一:共享账号检查 配置名称:用户账号分配检查,避免共享账号存在配置要求:1.系统需按照实际用户分配账号; 2.避免不同用户间共享账号,避免用户账号和服务器间通信使用的账号共享.操作指南 ...