用 MySQL 的经验理解 MongoDB 鉴权:账号、角色与集群内部认证
从 MySQL 转到 MongoDB 的人,很少会在 CRUD 上卡住,卡住的往往是鉴权:用户明明建了,连接却报 Authentication failed;角色授了,权限却不是想象中的那样;副本集开了认证以后,节点之间互相连不上。原因多半是带着 MySQL 的心智模型去理解 MongoDB,而两者在几个关键地方并不一样。 这篇文章按 MySQL 的概念顺序,逐个对照 MongoDB 的做法,重点放在差异和容易踩的坑上。文中所有命令和输出都来自一套本地实验环境: MySQL 8.4 MongoDB 8.0.4,一个 3 节点副本集 rs0,另有一个最小的分片集群(1 个 config server、1 个分片、1 个 mongos) 两台客户端容器 client-a(172.30.0.21)和 client-b(172.30.0.22),用来演示按来源 IP 限制登录 MySQL 用的是 8.4。还在用 8.0 的话,和认证相关的主要差别有几处:8.0...