博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Windows下安装MongoDB
阅读量:6283 次
发布时间:2019-06-22

本文共 3740 字,大约阅读时间需要 12 分钟。

今天尝试了在Windows7环境下安装MongoDB,遇到了一些问题,这里做一下记录。

正常安装

  • 下载软件, 在 下载安装包mongodb-win32-x86_64-2008plus-ssl-3.4.3-signed
  • 下载完成后开始安装,我修改了安装位置,放在了目录“C:\mongodb”下面
  • 一路next安装完成。接下来是最有问题的设置MongoDB的服务。
  • 在目录“C:\mongodb”下创建data目录和logs目录,并在logs目录下创建文件mongodb.log
  • 在目录“C:\mongodb”下创建mongodb.conf,并填入配置信息:
dbpath=C:\mongodb\datalogpath=C:\mongodb\logs\mongo.loglogappend=true journal=truequiet=true port=27017
  • 启动cmd界面,并执行以下命令:
cd C:\mongodb\binmongod --config "C:\mongodb\mongo.conf" --logpath "C:\mongodb\logs\mongo.log" --install --serviceName "MongoDB"mongod.exe --remove --serviceName "MongoDB" #如果需要移除这个服务的话
  • 浏览器访问即可看到以下界面
    849997-20170920090414821-470590733.png

权限配置

MonogoDB默认是无需权限认证即可进行CRUD操作的,但是为了保证MongoDB的使用尤其是商业使用,MongoDB应该要求是做权限配置。

关于权限,需要理解:

  1. MongoDB是没有默认管理员账号,所以要先添加管理员账号,再开启权限认证。
  2. 切换到admin数据库,添加的账号才是管理员账号。
  3. 用户只能在用户所在数据库登录,包括管理员账号。
  4. 管理员可以管理所有数据库,但是不能直接管理其他数据库,要先在admin数据库认证后才可以。

MongoDB有默认的角色参考,也可以自定义角色,默认的角色包括:

  • Read:允许用户读取指定数据库
  • readWrite:允许用户读写指定数据库
  • dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
  • userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
  • clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
  • readAnyDatabase:赋予用户所有数据库的读权限
  • readWriteAnyDatabase:赋予用户所有数据库的读写权限
  • userAdminAnyDatabase:赋予用户所有数据库的userAdmin权限
  • dbAdminAnyDatabase:赋予用户所有数据库的dbAdmin权限。
  • root:超级账号,超级权限
  • __system权限 ,用于分布式环境的权限认证,MongoDB assigns this role to user objects that represent cluster members, such as replica set members and mongos instances. The role entitles its holder to take any action against any object in the database.Do not assign this role to user objects representing applications or human administrators, other than in exceptional circumstances.If you need access to all actions on all resources, for example to run applyOps commands, do not assign this role. Instead, create a user-defined role that grants anyAction on anyResource and ensure that only the users who need access to these operations have this access.

上述的配置完成后,可以按照下面的操作进行:

  • 查看admin库
C:\Users\kejun.he>mongo> use adminswitched to db admin> show collectionssystem.version
  • 添加超级权限用户sa,root用户和admin用户
> db.createUser( { user:"sa", pwd:"root", roles:["root"] })> db.createUser( { user:"root", pwd:"root", roles:["clusterAdmin", "readWriteAnyDatabase", "dbAdminAnyDatabase", "userAdminAnyDatabase"] })> db.createUser( { user:"admin", pwd:"admin", roles:[{role:"dbAdminAnyDatabase",db:"admin"}] })
  • 在我们之前配置的mongo.conf文件中增加这一句,并重启mongoDB服务
auth=true========================net stop mongoDBnet start mongoDB

我们再重新登录,发现需要认证的配置生效了,这时候需要通过认证登录:

C:\Users\kejun.he>mongoMongoDB shell version v3.4.3connecting to: mongodb://127.0.0.1:27017MongoDB server version: 3.4.3> show dbs2017-04-25T13:04:34.435+0800 E QUERY    [thread1] Error: listDatabases failed:{        "ok" : 0,        "errmsg" : "not authorized on admin to execute command { listDatabases:1.0 }",        "code" : 13,        "codeName" : "Unauthorized"} :_getErrorWithCode@src/mongo/shell/utils.js:25:13Mongo.prototype.getDBs@src/mongo/shell/mongo.js:62:1shellHelper.show@src/mongo/shell/utils.js:761:19shellHelper@src/mongo/shell/utils.js:651:15@(shellhelp2):1:1

在上面的代码中,我们可看到需要检查admin的权限,use admin之后不能直接查询,通过权限认证之后才能查看admin数据库下的表。

* 继续增加普通用户,方便用户访问特定的数据库

> use admin> db.auth("admin","admin")> use upwordsswitched to db upwords> db.createUser({user:"up",pwd:"up",roles:[{role:"readWrite",db:"upwords"},{role:"dbAdmin",db:"upwords"}]})Successfully added user: {        "user" : "up",        "roles" : [                {                        "role" : "readWrite",                        "db" : "upwords"                },                {                        "role" : "dbAdmin",                        "db" : "upwords"                }        ]}> use upwordsswitched to db upwords> db.auth("up","up")1> show collectionsabctest

显示添加成功。

转载于:https://www.cnblogs.com/kendrick/p/6744801.html

你可能感兴趣的文章
SAP S/4HANA Cloud: Revolutionizing the Next Generation of Cloud ERP
查看>>
Mellanox公司计划利用系统芯片提升存储产品速度
查看>>
白帽子守护网络安全,高薪酬成大学生就业首选!
查看>>
ARM想将芯片装进人类大脑 降低能耗是一大挑战
查看>>
Oracle数据库的备份方法
查看>>
Selenium 自动登录考勤系统
查看>>
关于如何以编程的方式执行TestNG
查看>>
智能照明造福千家万户 家居智能不再是梦
查看>>
物联网如何跳出“看起来很美”?
查看>>
浅谈MySQL 数据库性能优化
查看>>
《UNIX/Linux 系统管理技术手册(第四版)》——1.10 其他的权威文档
查看>>
灵动空间 创享生活
查看>>
《UNIX网络编程 卷1:套接字联网API(第3版)》——8.6 UDP回射客户程序:dg_cli函数...
查看>>
不要将时间浪费到编写完美代码上
查看>>
《第一桶金怎么赚——淘宝开店创业致富一册通》一一第1章 创业梦想,怎样起步...
查看>>
基于容器服务的持续集成与云端交付(三)- 从零搭建持续交付系统
查看>>
《算法基础:打开算法之门》一3.4 归并排序
查看>>
高德开放平台开放源代码 鼓励开发者创新
查看>>
《高并发Oracle数据库系统的架构与设计》一2.5 索引维护
查看>>
《Exchange Server 2010 SP1/SP2管理实践》——2.4 部署外部网络环境
查看>>