mongoDB安全认证机制

为了保证数据的安全性,mongodb提供了两种方式的安全验证机制:①账号密码认证 ②IP绑定


一、账号密码认证

       这个没什么好说的,和普通关系型的数据库一样,使用账号密码进行认证,并且,用户有权限的概念,比如mysql中用户细分可以管理哪些表。

       在mongodb中,用户有两种,一种是超级管理员用户,一种是数据库拥有者。

       切换至admin数据库,在system.users集合中,我们可以看到本实例中所有的用户,及其roel。如下:

       

       而后,在启动mongoDB的时候,使用 -auth 表示需要用户名账号密码验证。

       可以使用db.addUser('userName','pwd')向本数据库下添加用户。

        在java中,验证用户账号密码身份:

db.authenticateCommand(username, password)
       在python中,验证账号密码“:
db.authenticate('testAdmin','123')
     

二、ip地址绑定

      启动mongodb的时候,使用 -bind_ip 192.168.20.21 表示启动ip地址绑定,数据库实例将只监听192.168.20.21的请求。

     ip绑定是怎么实现安全控制的呢?

     假设我们的mongodb安装在一台连接外网的服务器上,这台服务器又和其他服务器处于局域网中。那么这台服务器将有三个ip地址:127.0.1.1,内网ip,外网ip。为了保证安全,我们只能只用127.0.0.1或者内网ip。

    如果使用127.0.0.1,那么连接mongoDB的应用就必须在mongodb的服务器上。这样肯定能实现安全保证。

    如果使用内网ip,应用在连接mongodb的时候,必须MongoClient client = new MongoClient("192.168.20.114", 27017);这个ip必须是一个内网ip,外部网络的服务器就不能访问mongodb服务器。从而实现安全。

   


    总结:为了尽可能保证安全,我们一般使用两种方式的结合体,既绑定ip又使用账号密码认证机制。

   


     另外,mongodb的默认端口是27017,一般也需要更改这个默认端口,来尽可能提高安全性。如何更改默认端口呢?只需要在启动mongodb的时候加上  -port参数就OK了。




    


   



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值