【问题标题】:403 Forbidden using mongorestore for Cosmos DB403 禁止对 Cosmos DB 使用 mongorestore
【发布时间】:2020-12-14 11:14:05
【问题描述】:

我正在尝试使用 mongorestore 命令在 Cosmos 上恢复转储的数据库,但不幸的是它抛出了如下错误:

运行创建命令出错:(Unauthorized)Error=13, Details='响应状态码不表示成功:Forbidden (403);子状态:0;活动 ID:421d33eb-dea0-4372-92b0-ece63fd2b357;原因:(“不允许通过 Azure Cosmos DB 端点对资源 'dbs' 执行 'POST' 操作。请为您的帐户开启此类操作,或通过 Azure 资源管理器、Azure 门户、Azure CLI 或 Azure Powershell 执行此操作” ActivityId: 421d33eb-dea0-4372-92b0-ece63fd2b357, Microsoft.Azure.Documents.Common/2.11.0, 请参见 CosmosDiagnostics, Windows/10.0.14393 cosmos-netstandard-sdk/3.3.2); 2020-08-25T20:47:42.088+0530 0 个文档已成功恢复。 0 个文档无法恢复。

我正在按照微软提供的这个链接迁移数据:https://azure.microsoft.com/en-in/resources/videos/using-mongodb-tools-with-azure-cosmos-db/

用于恢复DB的命令如下:

mongorestore --host HOSTNAME:PORT -u USERNAME -p PASSWORD --db DBNAME DUMPED_DB_DIRECTORY_PATH --ssl --sslAllowInvalidCertificates

它指的是哪个帐户启用操作以及如何在我的帐户上启用操作,如日志中突出显示的那样? Azure CLI 或 Portal 中是否有任何等效的 mongorestore ?

我也尝试恢复单个集合,但出现了同样的错误。我成功地从我的另一个 Cosmos DB 实例中转储了数据。

【问题讨论】:

  • 您在创建 Cosmos DB 实例时指定了哪个 API:MongoDB API 还是 SQL API?
  • 是MongoDB API,mongodump也成功了。
  • 好的,太好了 - 如果您编辑问题以显示您的实际 mongorestore 命令行(只需确保混淆您的实际端点名称和密钥),这将有所帮助。正如所写的那样,它的外观并不完全清楚。另外,您是否指定了集合名称?
  • 我用附加的命令截图编辑了这个问题。我在有和没有指定集合名称的情况下都使用了。在不指定集合名称并仅传递 DB 文件夹的情况下,mongorestore 能够识别其中的所有集合。但显然,这两种情况都会出现同样的错误。

标签: mongodb azure azure-cosmosdb azure-cosmosdb-mongoapi mongorestore


【解决方案1】:

这是 Azure 策略方面的问题。启用了与 Cosmos DB 相关的 Azure 策略,该策略阻止基于密钥的元数据写入访问,因此无法在 DB 中进行任何更改。该组织制定了该政策,现在在禁用该政策后问题得到解决。

【讨论】:

    猜你喜欢
    • 2018-10-20
    • 2020-05-11
    • 1970-01-01
    • 1970-01-01
    • 2017-02-24
    • 2017-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多