mongoDB安全认证和php安全处理

MongoDB官方讲解安全验证:

http://www.mongodb.org/display/DOCS/Security+and+Authentication 

MongoDB中,服务启动默认是没有权限验证的,就安全性方面来说,这肯定是不行的,所以需要加上权限验证。

既然是要进行权限验证,那肯定是得有用户的吧,所以权限验证的第一步就是给MongoDB库添加用户。

启动MongoDB服务端,然后启动MongoDB客户端,在客户端使用命令给MongoDB库添加用户,看代码:


> db.addUser("jiangzhichao","jzc19880316");
{
        "user" :"jiangzhichao",
        "readOnly" :false,
        "pwd" :"f7559cfe0bc0a305f82c0d83664538fd"
}

小知识:在admin库里面添加用户是全局的,也就是说在admin中添加用户,在其他库里面也是适用的。

要给MongoDB的服务器端添加权限验证,需要在启动MongoDB的服务的时候添加--auth参数,代码如下:

d:\mongodb\bin>mongod --dbpath d:\mongodb\data --logpath d:\mongodb\log\mongodb.log --logappend --serviceName MongoDB --auth --install
all output going to: d:\mongodb\log\mongodb.log
Creating service MongoDB.
Service creation successful.
Service can be started from the command line via'net start "MongoDB"'.
 
d:\mongodb\bin>net start"MongoDB"
Mongo DB 服务正在启动 .
Mongo DB 服务已经启动成功。

在这里我是以服务的方式启动MongoDB服务,第一条命令是安装服务,第二条就是启动服务了。

服务都已经启动了,那就剩下打开客户端了,这个就简单了,看代码:

d:\mongodb\bin>mongo
MongoDB shell version: 1.8.2
connecting to: test
> show dbs;
Mon Oct 24 21:54:13 uncaught exception: listDatabases failed:{
        "assertion" :"unauthorized db:admin lock type:-1 client:127.0.0.1",
        "assertionCode" : 10057,
        "errmsg" :"db assertion failure",
        "ok" : 0
}


看到了吧,show dbs命令报异常了,再看异常的具体信息,unauthorized db:admin lock,权限验证不通

Logging in as an admin user
Although admin user accounts can access any database, you must log into the admin database. For example, if someAdminUser has an admin account, this login will succeed: 
> use admin
> db.auth("someAdminUser", password)
> // and then if desired switch databases:
> use test

过啊!

那好,下面就进行权限验证,这里唠叨一下,在进行权限验证的时候,先退出客户端,或者另起一个客户端,代码如下:

d:\mongodb\bin>mongo admin -u jiangzhichao -p jzc19880316
MongoDB shell version: 1.8.2
connecting to: admin
> show dbs;
admin   0.078125GB
local   (empty)
test    (empty)

命令格式:mongo [数据库名] -u [用户名] -p [密码]

上面的show dbs可以执行并看到结果了。

到此,权限验证的过程就算完成了。


Mongodb安全的php处理,php官方有很完整的描述

http://php.net/manual/zh/mongo.security.php 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值