1.前言
在使用MongoDB分片集群的时候,通过mongos创建管理员用户以及各数据库的用户。客户端(例如SpringBoot Mongo)携带授权用户信息访问mongos实例。在MongoDB分片集群部署情况下,MongoDB会将授权用户信息存储至confgi servers的admin数据库。
2. 误区
在不了解前言的情况下,用户可能认为通过mongos创建的用户信息会存储至各分片中,但是在进入分片或分片副本集操作的时候,会发现执行诸如rs.conf()操作的情况下,会提示没有权限。
3. 分片本地用户
对分片进行维护操作,例如cleanupOrphaned
, compact
, rs.reconfig()
,需要先在副本集(需要先完成副本集创建操作)中创建管理员用户,通过鉴权后执行相应操作。
MongoDB分片会将分片授权用户的信息,存储至分片的本地admin数据库。分片本地用户,与通过mongos创建的用户,是相互独立的,且分片本地用户无法被mongos访问到。
参考文档: