MongoDB-尽管具有atlasAdmin角色,但未在共享集群中授权

问题描述 投票:2回答:1

我对共享的mongodb集群有问题:我尝试通过mongodb的nodejs实现获取数据。几天前,它运行良好。但是现在,我发送给集群的每个getmore命令都非常非常慢。所以我想:也许我只需要关闭然后重新打开它。

因此,我尝试使用mongo shell连接到集群。一切正常,我的用户具有atlasAdmin角色(可以通过db.getUser("admin")看到),但是当我尝试执行db.shutdownServer()之类的命令或显示用户时,服务器告诉我我无权。甚至命令“ db.auth("admin", ...pw...)”也返回1。

经过一番研究,我发现我必须关闭服务器才能有机会解决此问题。但是未经允许,我该怎么办?还有其他可能性可以执行此操作,例如atlas webapp上的按钮还是其他?

mongodb authentication shutdown
1个回答
0
投票

Atlas是托管服务,因此特权与裸机MongoDB服务器不同。从MongoDB Database User Privileges这是atlasAdmin的特权列表:

  • readWriteAnyDatabase
  • readAnyDatabase
  • dbAdminAnyDatabase
  • clusterMonitor
  • cleanupOrphaned
  • enableSharding
  • flushRouterConfig
  • moveChunk
  • splitChunk
  • viewUser

[shutdown]特权是hostManager role的一部分,没有包括在上面的列表中。

根据您的Atlas部署类型,以下是受限制的命令/特权的列表:

如果需要“打开和关闭”部署,如果您的部署类型支持,则可以使用Test Failover按钮。该按钮将降低主要节点的位置,并选择一个新的主要节点,在大多数情况下,这几乎等同于“关闭并再次打开”。

© www.soinside.com 2019 - 2024. All rights reserved.