认证和授权
认证,用来识别用户的身份。
授权,控制认证用户的权限
MongoDB使用的是基于角色的访问控制来管理用户对实例的访问。通过对用户授予一个或多个角色来控制用户访问数据库资源的权限和数据库操作的权限
用户的操作
use people;创建用户
db.addUser("user", "pwd","readOnly")//是否只读用户true/false
db.addUser("user","newpwd")//更新密码
db.removeUser("user")//删除用户
db.getUser("lauf")//查看lauf用户
db.getUsers()//查看所有用户
副本集
简介
副本及是一组维护数据集的MongoDB服务。副本集可提供冗余和高可用行,是所有生产部署的基础。
复制数据的目的
存储数据冗余,保证数据的高可用性,避免因单点故障导致数据丢失。可以随时应对数据的丢失,保证服务的高可靠性。
读写分离,分担读的压力,提高服务的负载能力。
对用户透明的系统维护升级。
副本集的三个角色
副本集有两种类型,三种角色
两种类型:
主节点类型:数据操作的主要连接点,可读写。
次要(辅助,从)节点类型:数据冗余备份节点,可以读或者选举。
*注:从节点默认不可读,需要赋予读权限*
三种角色
主要成员(Primary):主要接受所有写操作。主节点。
副本成员(Replicate):从主节点通过复制操作以维护相同的数据集,不可写操作,可读。从节点类型。
仲裁者:不保存任何数据的副本,只具有投票权。
副本集的权限管理
取消副本集的读权限
rs.slaveOK(false)
注:如果参数为True或没有参数时表示赋予副本集读权限
主节点的选举原则
发起主节点选举条件
主节点故障
主节点网络不可达
人工干预(re.stepDown(600))
选举规则
票数高且获得大多数成员的投票(一半以上)的做主节点。
若票数相同,新插入数据的节点做主节点。