Mongodb访问控制


  • 註冊用戶

    官方手册中启动 MongoDB 服务时没有任何参数,一旦客户端连接后可以对数据库任意操 作,而且可以远程访问数据库,所以推荐开发阶段可以不设置任何参数,但对于生产环境还 是要仔细考虑一下安全方面的因素,而提高 MongoDB 数据库安全有几个方面:

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

    设置监听端口

    使用用户名和口令登录

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

    MongoDB 可以限制只允许某一特定 IP 来访问,只要在启动时加一个参数 bind_ip 即可,如

    下:

    mongod --bind_ip 192.168.1.103

    服务端限制只有 192.168.1.103 这个 IP 可以访问 MongoDB 服务

    客户端访问时需要明确指定服务端的 IP ,mongo 192.168.1.102 。

    2 设置监听端口

    官方默认的监听端口是 27017,为了安全起见,一般都会修改这个监听端口,避免恶意的连 接尝试 。

    mongod --bind_ip 192.168.1.103 --port 28018

    端户访问时不指定端口,会连接到默认端口 27017 。当服务端指定了端口后,客户端必须要明确指定端口才可以正常访问 。

    Mongo 192.168.1.102:28018

    3 使用用户名和口令登录

    MongoDB 默认的启动是不验证用户名和密码的,启动 MongoDB 后,可以直接用 MongoDB 连接 上来,对所有的库具有 root 权限。所以启动的时候指定参数,可以阻止客户端的访问和连接。

    启用系统的登录验证模块, 只需在启动时指定 auth 参数即可 ,如:

    mongod –auth

    在最初始的时候 MongoDB 都默认有一个 admin 数据库(默认是空的) , 而 admin.system.users 中将会保存比在其它数据库中设置的用户权限更大的用户信息。 注意: admin.system.users 中没有添加任何用户时, 当 即使 MongoDB 启动时添加了 --auth 参数, 如果在除 admin 数据库中添加了用户, 此时不进行任何认证依然可以使用任何操作, 直到知道你在 admin.system.users 中添加了一个用户。

    3.1 建立系统 root 用户

    db.addUser("root","111")

    db.auth("root","111")

    本地客户端连接,指定用户 ,mongo -u root -p

    3.2 建立指定权限用户

    设一个只读的用户

    user_reader db.addUser("user_reader", "user_pwd", true)

    注:原文转自网易博客【sheperd的日志---MongDB只访问控制】


登录后回复
 

与 萌阔论坛 的连接断开,我们正在尝试重连,请耐心等待