MongoDB的连接安全

        最近公司系统要引入MongoDB,所以看了些不少的相关资料。但是发现MongoDB连接安全这块的资料甚少,在这里记录下MongoDB关于连接安全的相关操作。

         在默认情况下连接MongoDB,是不需要用户名和密码的,可以通过IP加端口号的方式直接访问,这样在实际运用中是非常危险的。那么接下来就看看MongoDB通过用户来访问的。

         MongoDB是通过在数据库下添加用户的方式来控制访问权限的,且必须以-auth方式启动MongoDB时才有效。在admin库下添加的用户,具有超级管理员的权限,在其他库下添加的用户,只能访问操作当前库。例如:

>use admin
>db.addUser('root','root')
//添加超级管理员用户
>use test
>db.addUser('test','test')
//添加test库用户
>mongod --dbpath c:\mongo_data --logpath c:\mongo\logs\logs.txt -auth &
//以auth方式启动mongodb服务
>use admin
>show collections
Fri Apr 13 15:47:14 uncaught exception: error: {
        "$err" : "unauthorized db:admin lock type:-1 client:127.0.0.1",
        "code" : 10057
}
没权限
>db.auth('root','root')
//然后再
>db.collections
//就能看到表了
(1)JAVA方式通过用户密码访问MongoDB
Mongo m = new Mongo(); 
        
DB db = m.getDB("admin"); 
         
char[] pwd_char = "pwd1".toCharArray(); 
         
boolean auth = db.authenticate("user1",pwd_char);//登陆验证,成功之后才能进行有效操作 
 
if(!auth){ 
    throw new RuntimeException(); 
} 
 
(2)PHP方式通过用户密码访问MongoDB

//PHP是直接在获取连接对象时就进行配置了 
//mongodb://账号:密码@连接地址 
 
$m = new Mongo("mongodb://user1:pwd1@localhost");

转载于:https://my.oschina.net/luckyperson2012/blog/53434

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值