【问题标题】:Pure REST API call to get the list of SQL databases from Azure [closed]纯 REST API 调用以从 Azure 获取 SQL 数据库列表 [关闭]
【发布时间】:2016-01-24 05:44:49
【问题描述】:

我需要使用 Azure REST API 进行调用以获取数据库列表并在退出时删除特定数据库。

如果有人能给我一个有用的 shell 脚本。 我试过这个列出给定服务器上的 Azure SQL 数据库

 wget -U --no-check-certificate    https://management.core.windows.net:8443/  subscriptionID/services/sqlservers/servers/serverName/p1y/databases? contentview=generic
--2016-01-22 22:15:57--  https://management.core.windows.net:8443/${subscriptionID}/services/sqlservers/servers/${serverName}/databases?contentview=generic
Resolving management.core.windows.net (management.core.windows.net)...xx.xxx.xxx.xxx
Connecting to management.core.windows.net (management.core.windows.net)|xx.xxx.xxx.xxx|:8443... connected.
HTTP request sent, awaiting response... 403 Forbidden
2016-01-22 22:15:57 ERROR 403: Forbidden.

注意:我不允许在服务器上安装 AZURE CLI。 AZURE CLI 让我的工作变得轻松 :(

【问题讨论】:

  • 我不同意这个问题被关闭。它不是太宽泛。该问题有一个基于与 Azure 的 SQL 数据库服务相关的文档化 Azure API(以及包装 API 的 SDK 和 PowerShell/CLI 实现)的特定答案。 OP 要求通过 PowerShell 解决此问题,并已得到答复。
  • 你给出了一个的答案。但是OP已经明确表示您的答案不适合他们。事实上,这是“太宽泛”的一个标志:还有其他可能的答案,而且太多了,以至于在没有更多信息的情况下缩小问题的范围是不切实际的。 OP 需要 a) 更具体地说明他可能遇到的任何限制,并且 b) 展示 他已经尝试过的内容。如前所述,这是一个“gimme teh codz”问题。
  • 现在我发布了我尝试过的内容,有人可以删除我的问题并回答它吗!!!

标签: bash azure azure-sql-database azure-powershell


【解决方案1】:

Azure PowerShell 已经内置了用于执行此操作的命令,这些命令实现了 REST API 公开的功能(如果您决定直接采用该路线,则 API 文档 here)。您的问题提到想要使用 PowerShell,所以...

枚举 SQL 数据库服务器:Get-AzureSqlDatabaseServer

枚举服务器中的数据库:Get-AzureSqlDatabase 传递凭据上下文。

删除数据库:Remove-AzureSqlDatabase

有了这个,您应该能够将适当的 PowerShell 脚本拼接在一起来枚举和删除数据库。对于每个命令,您可以执行 get-help 来查看所需参数的详细信息。

我更全面地回答服务器/数据库枚举以回答一个不同(不完全重复)的问题,here

【讨论】:

  • 感谢 David 的快速回复 :) 实际上 Azure PowerShell 没有安装在我要发出请求的服务器上,有什么方法可以使用 wget 或其他东西吗?
  • 您可以进行直接 REST 调用,但不确定 wget 是否会为您解决问题,因为您需要设置标头等。或者您可以在您的服务器上安装 Azure PowerShell cmdlet...
  • 我不允许在服务器上安装 Azure PowerShell cmdlet。我尝试使用 wget,但它引发了以下错误“已发送 HTTP 请求,等待响应... 403 Forbidden”,您能否给我更多信息:)
【解决方案2】:

使用 C# 管理库,您可以从 c# 获得访问权限:

 <package id="Microsoft.Azure.Management.Sql" version="0.43.0-prerelease" targetFramework="net46" />

和类似的代码:

  var client = new SqlManagementClient();
  var db = client.Databases.List("resourceGroup","serverName").Databases.First();

这是否足以满足您的需求。它正在使用 ARM Rest API。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-23
    • 2016-09-25
    • 2018-01-29
    • 1970-01-01
    • 1970-01-01
    • 2019-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多