![](/img/trans.png)
[英]Timing out while trying to connect to sql in Azure Managed Instance from Azure VM
[英]Get databases from SQL managed instance using azure-mgmt-sql
我使用庫 azure-mgmt-sql 通過以下代碼獲取所有 SQL 服務器和數據庫:
resources = sql_client.servers.list_by_resource_group("myresourcegroup")
for r in resources:
databases = sql_client.databases.list_by_server("myresourcegroup", r.name)
for d in databases:
print(d.name)
我還需要獲取 SQL 托管實例及其數據庫。 我發現使用 managed_instances 而不是服務器返回 SQL 托管實例,但我沒有找到獲取數據庫的方法。
resources = sql_client.managed_instances.list_by_resource_group("myresourcegroup")
for r in resources:
databases = sql_client.databases.list_by_server("myresourcegroup", r.name)
for d in databases: <- ERROR when accessing the iterator
print(d.name)
我收到的錯誤如下:
azure.core.exceptions.ResourceNotFoundError:(ParentResourceNotFound)無法對嵌套資源執行請求的操作。 找不到父資源“mymanagedinstancename>”。
如何從 sql 托管實例獲取數據庫?
我在我的環境中嘗試並得到以下結果:
最初我嘗試了相同的代碼並得到了相同的錯誤:
安慰:
從您的代碼sql_client.databases.list_by_server("myresourcegroup", r.name)
中,您使用了database.list_by_server
。
我發現使用 managed_instances 而不是服務器返回 SQL 托管實例,但我沒有找到獲取數據庫的方法。
如果需要使用托管實例獲取數據庫,可以使用sql_client.managed_databases.list_by_instance
方法。
代碼:
from azure.mgmt.sql import SqlManagementClient
from azure.identity import DefaultAzureCredential
credential=DefaultAzureCredential()
subscriptionid="<subscription ID >"
sql_client=SqlManagementClient(credential=credential,subscription_id=subscriptionid)
resources = sql_client.managed_instances.list_by_resource_group("<resource grp>")
for r in resources:
databases=sql_client.managed_databases.list_by_instance("<resource grp>",r.name)
for d in databases:
print(d.name)
安慰:
參考:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.