设为首页 收藏本站
查看: 992|回复: 0

[经验分享] MongoDB Sharding中的用户认证问题

[复制链接]

尚未签到

发表于 2018-10-26 10:44:04 | 显示全部楼层 |阅读模式
  MongoDB Sharding中的用户认证问题 2012-11-30 12:07:19
  分类: Mysql/postgreSQL
  MongoDB Sharding中的用户认证问题
  ===========================================================
  在我上一篇文章中对用户认证问题有错误的认识,这里我专门写篇文章来讨论这个问题
  从v2.2开始,Mongo Sharding完全支持用户认证,包括只读权限的问题,我搜索了下论坛方向这方面的信息没有,官方的文档也很模糊,我摸索了几天,给大家
  share一下:
  1 关于keyfile和auth参数的问题
  keyfile包含了auth参数,而且优先级更高,只有你设定了keyfile,auth参数被忽略,也就是开启了用户认证
  对于shard和config实例,没添加用户前可以本地无验证登录,一旦添加用户,认证即可生效,连当前的session都会失效,需要从新登录
  对于mongos实例由于它的一切信息来自config实例,必须要通过用户认证
  注意:keyfile参数必须子所有实例中指定,而且必须是同一个key
  2 admin数据库的问题
  admin是一个特殊的数据库,它不在整个sharding中复制
  shard实例中的admin数据库是本地的,当然在同一个replica set是一样的,它仅限于登录shard实例
  config实例中的admin同时给config实例和mongos实例用于实例认证
  在mongos中添加的用户会同步到所有的config实例中
  在config中添加的用户不会同步到其它config实例中,因为它不知道其它实例的存在
  3 其它开启了sharding的一般数据库
  用户信息存在该数据库的primary shardh中, config实例中没有
  比如:
  mongos> db.system.users.stats();
  {
  "sharded" : false,
  "primary" : "rs02",
  "ns" : "demo.system.users",
  "count" : 1,
  "size" : 92,
  "avgObjSize" : 92,
  "storageSize" : 8192,
  "numExtents" : 1,
  "nindexes" : 1,
  "lastExtentSize" : 8192,
  "paddingFactor" : 1,
  "systemFlags" : 1,
  "userFlags" : 0,
  "totalIndexSize" : 8176,
  "indexSizes" : {
  "_id_" : 8176
  },
  "ok" : 1
  }
  在primary shard是rs02, 在该shard实例中可以用改用户登录数据,而在rs01和rs03中就不可了
  当然正规用户是同个mongos来连接该数据库
  4 用keyfile常遇到的问题
  addShard可成功,但是sh.shardCollection("demo.hwz",{_id:1})报a***tionCode:10057, errmsg: db assertion failure
  原因是用了keyfile参数,但是config实例中没有用户
  解决方法A:在所有的config server中添加相同的用户名和密码,然后用该用户在mongos中登录
  解决方法B:去掉keyfile参数,重新启动所有实例,在mongos的admin数据库中添加管理用户,然后加上keyfile参数再重新启动所有实例


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-626680-1-1.html 上篇帖子: mongoDB之用户及权限设置 下篇帖子: Mongodb 数据导入导出,备份及恢复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表