-
Type: Bug
-
Resolution: Won't Fix
-
Priority: Major - P3
-
None
-
Affects Version/s: 4.0.1
-
Component/s: Command Operations
-
None
-
Environment:system : centos 7
平台安装了一个三个节点的MongoDB复制集群。
当我在主节点登陆admin数据库,然后选择了其中的一个应用数据库,使用db.createUser({user:"XX",pwd:"XX",roles:[
{role:"dbOwner",db:"XXX"}]})给数据库创建了一个用户。
然后我使用robo等工具,能使用这个账号密码访问对应的数据库,也能进行查询修改等操作。但是当我在控制台使用mongo命令连接进去之后,所有的操作都被拒绝。错误信息一直显示我一个已经删除了的test数据库权限被拒绝,跟我当前操作的数据完全不搭边。当我输入show users,类似下面的错误信息:
------
2020-04-28T19:17:09.066+0800 E QUERY [js] Error: not authorized on test to execute command { usersInfo: 1.0, lsid:
{ id: UUID("fd77665d-73e4-4281-98e3-db3ef79849ca") }, $clusterTime: { clusterTime: Timestamp(1588072625, 1), signature:
{ hash: BinData(0, 3F0BA488A9BF081067029BC157D379CB7364AE4A), keyId: 6815855173080973313 }}, $db: "test" }
其中上述报错信息中的数据库test,是跟当前数据库完全没有任何联系的。
输入show collections
------
Warning: unable to run listCollections, attempting to approximate collection names by parsing connectionStatus
------
接着我验证登陆 db.auth("xxxx","xxxx"),我确认了无数次,再账号密码输对的情况下还是被拒绝。这如果是个bug,希望你们能够修改。否则希望能够说明一下原因,目前我没找到遇到类似问题的答案。