![](/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.