mongodb 权限设置

用了这么久的mongodb,还是第一次为mongodb增加auth权限,之前都是在内网或者监听127.0.0.1本地ip的,下面记录给mongodb分配权限的简单流程。

1、启动mongod服务,执行mongo进入shell环境
2、执行 show dbs,会出现如下列表

show dbs
admin 0.078GB
boker 0.078GB
eastcity 0.078GB
local 0.078GB
recmem 0.078GB
wxmenu 0.078GB

使用第3步是2.4版本的老办法,使用第4步是2.4版本后的新办法:
3、先给admin表增加用户和授权(2.4版本之前的办法)
use admin
db.addUser(‘root’, ‘123456’)
db.auth(‘root’, ‘123456’)
//增加用户”root”,密码”123456”,并且验证这个用户
然后对所有数据库循环执行 第3步 的命令

4、新方法授权可以使用role角色来细分用户的权限,我们一般用不到,都赋予全部权限,不设置角色:
use admin
db.createUser(
{
user: “root”,
pwd: “123456”,
roles: [
{ role: “userAdminAnyDatabase”, db: “admin” },
{ role: “dbOwner”, db: “dbname” }
]
}
)
同样对多个数据库执行上述代码,进行添加数据库管理员

5、启动mongodb带auth认证,
mongod -f /var/mongod_config/mongodb.conf
配置文件 /var/mongod_config/mongodb.conf 如下:
dbpath=/var/mongodb_database
bind_ip = 0.0.0.0
port=27017
maxConns = 200
logpath=/var/mongodb_log/log
fork = true
auth = true
6、这样我们就可以通过shell或者连接字符串
连接字符串:
mongodb://root:[email protected]:27017/recmem
mongo连接
$ mongo recmem -u root -p
MongoDB shell version: 2.6.4
Enter password:
connecting to: recmem
如果想直连recmem的时候查看其他数据库,可以使用如下命令:
use admin
db.auth(‘root’, ‘123456’)