数据库

 首页 > 数据库 > MongoDB > MongoDB数据库访问控制

MongoDB数据库访问控制

分享到:
【字体:
导读:
         摘要:Mongodb默认启动是不带认证的,也没有账号,只要连接上服务就可以进行CRUD操作。作为数据库软件,为了保证数据的安全,可以采用以下方法提高数据访问的安全性:1、绑定要访问MongoDB服务所在的ip内网地址在启动时添加--bind_ip参数用以限制只允许某一特定I...

MongoDB数据库访问控制

Mongodb默认启动是不带认证的,也没有账号,只要连接上服务就可以进行CRUD操作。作为数据库软件,为了保证数据的安全,可以采用以下方法提高数据访问的安全性:

1、绑定要访问MongoDB服务所在的ip内网地址
在启动时添加--bind_ip参数用以限制只允许某一特定IP地址访问MongoDB服务,如:服务端限制只有58.20.3.52这个IP可以访问MongoDB服务
QQ截

客户端访问时需要指定服务端的IP,否则会报错:
QQ截
此时服务端和客户端位于一台机器,所以IP一致


2、设置监听端口
默认的监听端口是27017,我们可以修改这个监听端口,如:将服务器监听端口修改为27018
QQ截

当服务端指定了端口后,客户端访问时需要明确指定端口才可以访问
QQ截


3、使用用户名和口令登陆

MongoDB默认启动是不需要用户名和密码的,一个MongoDB实例中的每个数据库都可以拥有许多用户,使用--auth开启安全性检查,则只有数据库认证的用户才能执行读写操作。

1、添加用户,使用addUser('username’, ‘password’, ‘是否只读true|false(default)' )
QQ截
在admin数据库中的用户被视为超级管理员,--auth开启安全认证检查之前一定要有个管理员帐号。

QQ截
test普通数据库中添加了两个普通账户tom和tory,而tory账户只拥有readOnly权限。

2、开启安全认证检查(--auth)
启动MongoDB服务时添加-auth参数开启安全认证,开启安全认证检查之前一定要有个管理员帐号
QQ截

带有-auth参数时,必须通过认证才可以查询数据。如果没有加-auth参数,即使配置了安全认证用户,也不需要认证谁都可以操作。

3、用户认证
使用--auth开启安全性检查之后,则只有数据库认证的用户才能执行读写操作
QQ截
db.auth('tom' ,'123')用户认证,tom用户具有test数据库下的读写权限

QQ截
tory用户只有test数据库下的读权限

非特权用户不能使用show dbs查看所有数据库,作为超级管理员root用户,可以对所有数据库进行任意操作。

system.user

每个数据库的用户账号都是以文档形式存储在system.users集合里面的,
文档结构{'user':username, 'readOnly':true, 'pwd': password hash}。password hash是根据用户名和密码生成的散列。
QQ截

QQ截

查询某个数据库下的用户db.system.users.find();
删除某个数据库下的所有用户db.system.users.remove(),删除指定用户db.system.users.remove({'user':'用户名'})

MongoDB数据库访问控制
分享到:
MongoDB shell常用命令介绍
MongoDB shell常用命令介绍 首先要启动MongoDB shell工具,即bin下的mongo.exe 常用shell命令如下: 1、查询本地所有数据库名称 > show dbs; 2、切换至指定数据库环境(若无指定的数据库,则创建新的库) > use dbtest; 切换至dbtest库或创建名为dbtest的库 3、查询当前库下的所有聚集集合collection(相当于ta...
PHP的MongoDB数据库封装类
PHP的MongoDB数据库封装类 /*********************************************************************************  * InitPHP 2.0 国产PHP开发框架  Dao-Nosql-Mongo  *-------------------------------------------------------------------------------  * 版权所有: CopyRight By initphp.com ...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……