启动MongoDB的授权认证校验

来源:互联网 发布:windows自带图片浏览器 编辑:程序博客网 时间:2024/06/05 14:49

初始安装mongodb并启动一个server实体,这个时候,访问数据库是不需要任何授权的 (只要网络可以连接的客户端都是可以连接服务器并以超级管理员的身份进行操作的),因为mongodb默认是关闭访问授权验证的咯,下面我们启用它的授权验证然后进行访问操作!

其实对于mongodb数据库安全性,除了开启授权验证功能,还是有一个方法就是在启动server实例时,配置指定绑定的ip,比如我们配置成 “127.0.0.1”, 那就杜绝了所有来自主机以外的访问,再保证主机管理员操作的正确性下,同样可以保证数据安全的嘛!

1 . 在开启授权验证前,让我们先连接到服务器创建数据库的超级管理员

# 1.利用mongo shell工具连接服务器mongo# 2.选择当前操作的数据库为admin(初次操作,会发现其实数据库admin还未被创建)use admin# 3.创建超级管理员db.createUser({"user":"administrator","pwd":"welcome","roles":["root"]})

2 . 开启数据库授权验证的方法这里提供两种,具体还是针对看启动server的方式,
1). 执行mongod命令时加参数 ”–auth“,即可开启服务器授权校验;
2). 在数据配置文件中添加开启授权验证的配置;

    security:   authorization: enabled

3 . 让我们以授权的方式连接server,

mongo -u administrator -p welcome --authenticationDatabase "admin"

经过测试,本人发现即使没有后面的授权信息,单单使用 “mongo”命令依旧可以连接服务器啊,先别急,哈哈
为什么开启了授权,我们还是可以连接通过mongo shell连接服务器呢?

其实这里有个技巧,我们的授权验证信息,可以滞后提供,例子如下,

# 1.先利用mongo shell工具连接服务器mongo# 2.执行一个命令,查看当前服务器都有哪些数据库呢show databases; //这里会执行失败,提示没有授权# 3. 使用超级管理员进行授权访问use admin;db.auth("administrator", "welcome")# 4. 再次查看有哪些数据库show databases; //成功列出所有数据库

在查看了mongodb官方文档对于授权这一块的介绍后,感觉它的授权机制还是比较细的,系统默认包含一系列的roles (针对collections,database,Cluster,Backup and Restoration,etc的控制 ),都是非常值得学习的啦

参考:Security-checklist

0 0
原创粉丝点击