mongoDB数据库启用身份认证

          

mongoDB数据库启用身份认证

        

哈希大数据致力于互联网、金融、物流等行业大数据采集、分析、营销与决策提供综合解决方案

前面已经分享了如何安装及启动MongoDB数据库以及Python中在scrapy框架下如何将爬取到的数据保存到MongoDB数据库中。现在我们已经将数据保存到数据库中了,但现在其他人只要知道我们的IP就可以远程操作我们的MongoDB数据库了,可以随意增、删、改、查我们数据库的数据,是不是很可怕!!!所以为了数据安全,我们要启用身份验证,启用身份验证当然还有其他作用,比如我们某款产品的后台要调用数据,为了数据安全可以为该数据库新建一个只有只读权限的账号,下面我们来看看如何启用身份认证。具体步骤如下:

1启用MongoDB无需访问控制

如果已经按照如何安装及启动MongoDB数据库中分享的步骤完成数据库的安装与启动。启动MongoDB可采用以下两种方式:

1.在本地服务中查看MongoDB服务是否开启,若未启动点击启动即可。

本地服务打开方式:

win7:

右键点击桌面的图标,选择选项,点击打开

进入管理界面,点击打开,可以看到点击打开即可

win8:

win+Q快捷键打开搜索,输入:本地服务

点击:查看本地服务,进入本地窗口

2.在mongod.exe文件位置打开命令窗口中运行如下命令:

mongod--port--config"D:\mongodb\mongod.cfg"

具体操作为:打开以下文件夹,按着shift键同时点击右键,有在此处打开命令行窗口的操作,点击即可进入命令行窗口。

2打开mongo

例如,使用mongoshell连接到实例。

mongo--port

3创建超级管理员

在命令行中输入以下命令:

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

这样就生成了一个有root权限的用户,再输入以下命令:

db.auth("root","密码")

进行用户认证,查看用户是否创建成功。

4重新启动具有访问控制的MongoDB实例

使用--auth命令行选项重新启动mongod实例.

1.在mongod.exe文件位置打开命令窗口中运行如下命令:mongod--auth--port--dbpathD:\data\db

本步操作同步骤1中的操作一样

2.修改MongoDB的配置文件mongo.config,如下:

#数据库数据存放目录

dbpath=D:\data\db

#数据库日志存放目录

logpath=D:\data\logs\mongo.log

#以追加的方式记录日志

logappend=true

#开启用户认证

auth=TRUE

#mongodb所绑定的ip地址

bind_ip=0.0.0.0

#端口号默认为

port=

#启用日志文件,默认启用

journal=true

在mongod.exe文件位置打开命令窗口中运行如下命令:

mongod--configD:\data\mongo.config

3.删除MongoDB的本地服务,重新添加

首先以管理员身份运行CMD,然后依次输入以下命令:

scstopMongoDB

scdeleteMongoDB

这便删除了之前的MongoDB服务,此时在本地服务中就看不到MongoDB服务了。

接下来输入:cd[mongo.exe所在文件路径]

继续输入:mongod--configD:\data\mongo.config--install--serviceName"MongoDB"

这便再次把MongoDB设置为Windows服务。此时在本地服务中就又可以看到MongoDB服务了。

再次启动MongoDB。

5以超级管理员身份进行连接和验证

在连接期间进行身份验证

使用-uusername,-ppassword和--authenticationDatabaseadmin命令行选项启动一个mongoshell:

mongo--port-u"root"-p"密码"--authenticationDatabase"admin"

先连接后验证

将mongoshell连接到mongodb,也就是先连接,后验证用户身份:

mongo

切换到身份验证数据库(在这种情况下为admin),并使用db.auth(username,pwd)方法进行身份验证:

useadmindb.auth("root","自己设置的密码")

如果不进行以上的验证,直接执行下面步骤,将会出错,提示您没有相应权限

6根据需要创建其他用户

当超级管理员用户进行身份验证通过之后,可使用db.createUser()创建其他用户。可以为用户分配任何内置角色或用户定义的角色。

以下操作将用户tester添加到在test数据库中并给予test数据库的readWrite角色以及在reporting数据库中读取角色。

usetestdb.createUser({user:"tester",pwd:"test",roles:[{role:"readWrite",db:"test"},{role:"read",db:"reporting"}]})

7连接并验证tester

首先在mongod.exe文件位置打开命令窗口中运行如下命令:

mongo--port-u"tester"-p"test"--authenticationDatabase"test"

使用用户tester插入一个集合

使用用户tester,此用户有权在test数据库中执行读写操作(以及在reporting数据库中执行读操作)。例如,在test数据库中执行以下插入操作:

db.foo.insert({x:1,y:1})小结

本次分享主要向大家介绍如何启用MongoDB的用户验证,主要可分为七个步骤,这里我们开始新建的是超级管理员,而不是用户管理员两个都可以,但建议新建超级管理员。开启用户验证很重要,它可以有效保护我们的数据不被轻易盗取,如果登陆用户只有只读权限他就不可以增加、删除、更改原始数据,这样也有利于保护原始数据。

扫一扫左边







































北京治疗白癜风哪家医院效果好
儿童白癜风的症状



转载请注明:http://www.xcqg58.com/jbjj/8086.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了