mongodb系列-访问控制

默认启动 MongoDB 服务时没有任何参数,可以对数据库任意操

作,而且可以远程访问数据库,所以推荐开发阶段可以不设置任何参数,但对于生产环境还

是要仔细考虑一下安全方面的因素,而提高 MongoDB 数据库安全有几个方面:

1,绑定IP 内网地址访问MongoDB 服务

2,设置监听端口

3,使用用户名和口令登录

 

一,绑定IP内网地址访问MongoDB

可以在配置文件里面配置绑定的内网的IP,也可以在启动mongod服务时加--bind_ip  192.168.0.100这种参数:

vi /etc/mongod.conf

bind_ip=192.168.0.100

这样客户端访问时需要明确指定服务端的IP,否则会报错:

[root@localhost bin]# mongo 192.168.0.100

MongoDB shell version: 2.6.7

connecting to: test

 

二,设置监听端口:

vi /etc/mongod.conf

修改成port=27018

或者启动mongod服务直接加--port参数

./mongod --bind_ip 192.168.0.100 --port 27018

服务端指定了端口后,客户端必须要明确指定端口才可以正常访问

[root@localhost bin]# mongo 192.168.0.100:27018

MongoDB shell version: 2.6.7

connecting to: test

 

三,使用用户名和口令登录:

MongoDB 都默认有一个 admin 数据库(默认是空的),而 admin.system.users 中将会保存比在其它数据库中设置的用户权限更大的用户信息。

注意:当 admin.system.users 中没有添加任何用户时,即使 MongoDB 启动时添加了 --auth参数,如果在除 admin 数据库中添加了用户,此时不进行任何认证依然可以使用任何操作,直到知道你在 admin.system.users 中添加了一个用户。

在低版本中增加用户的命令是:addUser(),高版本一般用createUser():

>  db.createUser({user:"jack",pwd:"123",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})

Successfully added user: {

    "user" : "jack",

    "roles" : [

       {

           "role" : "userAdminAnyDatabase",

           "db" : "admin"

       }

    ]

}

开启conf文件中的auth功能,设置用户和密码之后,再执行show dbs就会报错:

> show dbs;

2015-02-13T17:40:59.128+0800 listDatabases failed:{

    "ok" : 0,

    "errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }",

    "code" : 13

} at src/mongo/shell/mongo.js:47

 

db.auth()认证之后就可以执行了:

 

> use admin

switched to db admin

> db.auth('jack','123')

1

> show dbs

admin  0.078GB

local  0.078GB

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29806344/viewspace-1436692/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29806344/viewspace-1436692/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值