mongoDB的复制集5----复制集安全(认证,用户,权限)

一、什么是认证
  如何开启认证
    1).auth=true(在配置文件里增加)
    2).keyFile(建议添加到配置文件里)

#如果设置了auth=true,但第一次没有创建用户就启动实例怎么办
# 在配置文件里增加如下
echo "setParameter=enableLocalhostAuthBypass=1" >> /usr/local/mongoDB/conf/28001.conf
#然后用本地ip连接
mongo localhost:28001
  auth与keyFile的区别
    auth  单点
    keyFile  集群之间验证
   开户keyFile默认开户auth
1-1.如何配置keyfile
keyFile的注意事项:
  1.内容 base64编码集[a-z A-Z +/]
  2.长度 1000bytes
  3.权限至少 chmod 600 keyFile (
配置:
  1).在配置文件去除auth=true;
  2).增加keyFile=/usr/local/mongoDB/.keyFile,在28001.conf等三个文件都这么配置

[email protected]:~$ touch .keyFile
[email protected]:~$chmod 600 .keyFile

[email protected]:~$ openssl rand -base64 102
bFWO/1wdII04a6lNCFy9I5mfQ161K9HO/eMLcrQhUVhZrztXBSG2OkJxotXqvAhq
jEB6JSA/3Hq6m7X7a+K66pSQcCRXVgZ9+exl2piDdgkOFdB9q9PTXK+uCnvFXlfM
cJL+fA74
[email protected]:~$ openssl rand -base64 102 > .keyFile

# 后面就启动和连接服务器
二、用户
2-1.如何创建/删除一个用户
  1).创建语法:createUser(2.6之前为addUser)
  2).db.createUser(
     {user:"<name>",
      pwd:"<cleartext password>",
      roles:[{role:"<role>",db:"<database>"}]})

# 创建第一个用户一定要有创建其他用户的能力
db.createUser(
{user:‘adminTest‘,
pwd:"‘123455‘,
roles:[{role:‘root‘,db:‘admin‘}]})

# 再次连接时,在哪创建的用户就需要登陆到哪个库的认证
db.auth(‘adminTest‘,‘12345‘)

#然后就可以操作数据库了
2).如何删除一个用户
  db.dropUser(<user_name>) :删除某个用户,接受字体串参数
  db.dropAllUsers()        :删除当前库的所有用户,使用小心
3).如何修改用户密码
  需要具备changePassword或changeOwnPassword
  db.changeUserPassword(<user_name>,<new_password>)
  db.updateUser(<user_name>,{update_object})

三、权限
  角色:对某一资源的权限的‘集合‘
  mongoDB有两种角色,一种是自带的角色(built-in roles),还有一种是自定义角色。

3).角色类型:内建类型
  读写:read,readWrite,  
  管理员:dbAdmin,dbOwner,userAdmin、clusterAdmin,clusterManager,clusterMonitor,hostManager
  备份: backup、restore
  全局: readAnyDatabas, readWriteAnyDatabase, userAdminAnyDatabase, dbAdminAnyDatabase
  超级用户:root

自定义角色
  db.createRole({
    role:<role_name>,
    privileges:[{resource:{db:<db_name>,collection:<coll_name>},actions:[<action_name>]}],
    roles:[{role:<role_name>,db:<db_name>}]})

# 将用户的权限都打印出来
db.runCommand({userInfo:‘admin‘,showPrivileges:1})

#自定义角色
db.createRole({
role:‘testRole‘,
privileges:[{resource:{db:‘changwen‘,collection:‘‘},
actions:[‘find‘,‘insert‘,‘remove‘]}],
roles:[{role:‘read‘,db:‘test‘}]})
#创建用户
db.createUser(
{user:‘roleTest‘,
pwd:"‘123‘,
roles:[{role:‘testRole‘,db:‘admin‘}]})
三、权限伸缩
1).如何增加权限
  db.grantRolesToUser(
    <user_name>,
    [{role:<role_name>,db:<db_name>}])
  注意,本方法接受2个参数,而不是两个对象
    而且如何权限重复不会覆盖,新的会增加

db.grantRolesToUser(‘roleTest,[{role:‘readWrite‘,db:‘test‘}])
2).如何收缩权限
  db.revokeRolesToUser(
    <user_name>,
    [{role:<role_name>,db:<db_name>}])

---------------------

本文来自 liucw_cn 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/ochangwen/article/details/52388911?utm_source=copy

原文地址:https://www.cnblogs.com/ExMan/p/9696235.html

时间: 2024-11-09 01:41:21

mongoDB的复制集5----复制集安全(认证,用户,权限)的相关文章

MongoDB复制集安全认证

之前我有一篇博客写的是“node.js通过权限验证连接MongoDB”,这篇博客上提到如何在启动文件中通过配置auth参数来开启权限认证,但这种认证方式只适合单机节点,当我们使用复制集时应该怎么开启权限认证来保证复制集的安全捏? 先给大家看一下我在centos虚拟机上搭建的复制集 这和我之前的那篇博客上展示的不是同一个复制集,因为昨天我在原来那台虚拟机上瞎几把搞的时候改错了一个配置文件然后系统就GG了.....于是今天我又重新装了一遍. 上面展示的五个文件夹分别是五个数据库的安装路径,文件夹名后

MongoDB实战指南(七):MongoDB复制集之复制集工作机制

http://www.cnblogs.com/longshiyVip/p/5097336.html 概述了复制集,整体上对复制集有了个概念,但是复制集最重要的功能之——自动故障转移是怎么实现的呢?数据同步又是如何实现的?带着这两个问题,下面展开分析. 一. 数据同步 先利用mongo客户端登录到复制集的primary节点上. >mongo --port 40000 查看实例上所有数据库 rs0:PRIMARY> show dbs local 0.09375GB 可以看到只有一个local数据库

MongoDB复制集(实现选举复制、故障切换、升级oplog大小、认证复制)

什么是复制集? 复制集(replica sets)是额外的数据副本,是跨多个服务器同步数据的过程,复制集提供了冗余并增加了数据可用性,通过复制集可以对硬件故障和中断服务进行恢复. 复制集的优势 让数据更安全. 高数据可用性. 灾难恢复. 无停机维护(如备份.索引重建.故障转移) 读缩放(额外的副本读取) 副本集对应用程序是透明的. 复制集概述 MongoDB复制集是额外的数据副本,复制集提供了冗余和增加数据可用性. MongoDB的复制集至少需要两个节点,其中主节点负责处理客户端请求,从节点负责

MongoDB之分片集群与复制集

分片集群 1.1.概念 分片集群是将数据存储在多台机器上的操作,主要由查询路由mongos.分片.配置服务器组成. ●查询路由根据配置服务器上的元数据将请求分发到相应的分片上,本身不存储集群的元数据,只是缓存在内存中. ●分片用来存储数据块.数据集根据分片键将集合分割为数据块,存储在不同的分片上.在生产环境下,通常一个分片由一个复制集组成. ●配置服务器存储集群的元数据,包括数据与分片的映射关系,配置服务器一旦挂掉,集群将无法工作. 注意: ●当mongos重启时,会从配置服务器读取元数据更新自

配置MongoDB复制集

什么是复制集? 复制集是额外的数据副本,是跨多个服务器同步数据的过程,复制集提供了冗余并增加了数据可用性,通过复制集可以对硬件故障和中断的服务进行恢复.复制集的优势如下: 让数据更安全 高数据可用性(24*7) 灾难恢复 无停机维护(如备份.索引重建.故障转移) 读缩放(额外的副本读取) 副本集对应用程序是透明的 复制集工作原理 MongoDB的复制集至少需要两个节点.其中一个是主节点(Primary),负责处理客户端的请求,其余的都是从节点(Secondary),负责复制主节点上的数据.Mon

MongoDB复制集部署和基本管理

MongoDB复制集部署和基本管理 MongoDB复制集概述 复制集(Replica Sets)是额外的数据副本,是跨多个服务器同步数据的过程,复制集提供了冗余并增加了数据的可用性,通过复制集可以对硬件故障和中断服务进行恢复. 复制集由下列优点: 让数据更安全 高数据可用性(7*24) 灾难恢复 无停机维护(如备份.索引重建.故障转移) 读缩放(额外的副本读取) 副本集对应用程序是透明的 复制集工作原理 MongoDB的复制集至少需要两个节点.其中一个节点是主节点(Primary),负责处理客户

【亲测】教你如何搭建 MongoDB 复制集 + 选举原理

目录 1·MongoDB 复制集概述2·MongoDB 复制集部署3·MongoDB 复制集管理(添加.移除等)4·复制集的总结 MongoDB 复制集是什么? 之前的一片文章讲了 MongoDB 的安装和日常的操作,有兴趣的朋友可以看看 MongoDB 的安装和简单操作 1)什么是复制集? 复制集是额外的一种数据副本,是跨多个服务器同步数据的过程,通俗的说就是可以在不同的服务器上备份数据,专业点说就是冗灾处理.通过复制集可以对硬件和终端的服务进行恢复. 2)复制集的优势如下: 1-让数据更加安

MongoDB 复制集 第 二 部 之【选举原理】

目录: 1·复制与选举的原理与验证2·oplog 日志调整3·配置复制集的优先级4·部署认证的复制5·总结 复制与选举的原理: 上一篇文章搭建了多台实例,部署成复制集,我们能知道复制集的作用,且进行了模拟故障,知道了从节点会主动切换为主节点,那么它是怎么推选出由哪一个从节点担任主节点呢? MongoDB 复制集的节点是通过选举产生主节点的,下面将介绍复制集节点间选举的过程: 1)复制的原理: 复制是基于操作日志 oplog ,相当于 MySQL 中的二进制日志,只会记录发生改变的记录.复制是将主

MongoDB复制集成员及架构介绍(一)

MongoDB复制集介绍 MongoDB支持在多个机器中通过异步复制达到提供了冗余,增加了数据的可用性.MongoDB有两种类型的复制,第一种是同于MySQL的主从复制模式(MongoDB已不再推荐此方案):第二种是复制集,提供了自动故障转移的主从复制集群,其中复制集没有固定的主节点,当一个主机的故障后从节点会重新“选举”出一个新的主节点,从而提高的系统的可用性. 复制集(Replica Sets)成员 MongoDB的复制集是由一组mongod实例所组成的,并提供了数据冗余与高可用性.复制集中