如何列出启用了网络例外的Azure SQL PaaS服务器
解决Azure SQL PaaS网络信息无法通过Kusto查询获取的问题
你当前的查询目标是SQL数据库资源,但Azure SQL的网络配置(包括访问例外规则)是绑定在SQL Server实例层级的,不是单个数据库,所以查microsoft.sql/servers/databases自然看不到网络相关属性。
直接查询SQL Server的网络配置
用下面的Kusto语句可以获取包含网络规则的服务器信息:
resources | where type == "microsoft.sql/servers" | project 服务器名称 = name, 资源组 = resourceGroup, 区域 = location, 网络设置 = properties.networkSettings, 防火墙规则 = properties.firewallRules
关联数据库与对应服务器的网络信息
如果需要把数据库和它所属服务器的网络配置关联起来,可以用join:
// 先提取所有SQL Server的网络配置 let sqlServers = resources | where type == "microsoft.sql/servers" | project serverName = name, resourceGroup, 网络设置 = properties.networkSettings, 防火墙规则 = properties.firewallRules; // 关联数据库和服务器数据 resources | where type == "microsoft.sql/servers/databases" | extend serverName = split(id, "/")[8] // 从资源ID中解析出服务器名称 | join kind=inner sqlServers on serverName, resourceGroup | project 数据库名称 = name, 服务器名称 = serverName, 资源组 = resourceGroup, 网络设置, 防火墙规则
筛选启用了Azure服务访问例外的服务器
如果要专门找出允许Azure内部服务访问的SQL Server,可以加过滤条件:
resources | where type == "microsoft.sql/servers" // 检查是否存在允许Azure服务的防火墙规则 | where array_length(properties.firewallRules) > 0 | mv-expand rules = properties.firewallRules | where rules.name == "AllowAllWindowsAzureIps" | project 服务器名称 = name, 资源组 = resourceGroup, 允许Azure服务访问 = true
内容的提问来源于stack exchange,提问作者midhun mohan
相关产品推荐
相关产品推荐

