Azure PowerShell:NIC与专用端点附加到SQL Server遇阻求助
Azure SQL专用端点部署问题解决指南
核心问题梳理
你的脚本存在4个关键问题:
- 手动创建NIC是多余操作:专用端点创建时会自动生成关联的网络接口
- PowerShell cmdlet参数误用:
New-AzPrivateEndpoint无SubnetId参数,需用Subnet对象 - 无效cmdlet调用:
Add-AzPrivateLinkServiceConnection并非有效Azure PowerShell命令 - 子网配置参数重复:设置专用端点网络策略时参数格式错误
修正后的完整脚本
# 定义变量(请自行替换为你的实际值) $resourceGroupNameSPOKE = "你的资源组名" $location = "你的区域" $vnetName1 = "VNet名称" $vnetAddressSpace1 = "10.0.0.0/16" $subnetName1 = "子网名称" $snetAddressSpace1 = "10.0.1.0/24" $serverName = "SQL服务器名" $adminLogin = "SQL管理员账号" $adminPassword = ConvertTo-SecureString "你的密码" -AsPlainText -Force $databaseName = "数据库名称" $privateEndpointName = "专用端点名称" $privateLinkServiceConnectionName = "专用连接名称" $subscriptionId = "你的订阅ID" # 1. 创建虚拟网络 $virtualNetwork1 = New-AzVirtualNetwork ` -ResourceGroupName $resourceGroupNameSPOKE ` -Location $location ` -Name $vnetName1 ` -AddressPrefix $vnetAddressSpace1 # 2. 创建子网(禁用专用端点网络策略,必须配置) $subnetConfig1 = Add-AzVirtualNetworkSubnetConfig ` -Name $subnetName1 ` -AddressPrefix $snetAddressSpace1 ` -VirtualNetwork $virtualNetwork1 ` -PrivateEndpointNetworkPolicies "Disabled" # 同步VNet配置 $virtualNetwork1 | Set-AzVirtualNetwork # 获取子网对象(用于后续专用端点创建) $subnet = Get-AzVirtualNetworkSubnetConfig -Name $subnetName1 -VirtualNetwork $virtualNetwork1 # 3. 创建SQL Server New-AzSqlServer -ResourceGroupName $resourceGroupNameSPOKE -ServerName $serverName -Location $location -SqlAdministratorCredentials (New-Object PSCredential -ArgumentList ($adminLogin, $adminPassword)) -ServerVersion "12.0" # 4. 创建SQL数据库 New-AzSqlDatabase -ResourceGroupName $resourceGroupNameSPOKE -ServerName $serverName -DatabaseName $databaseName -RequestedServiceObjectiveName "S0" # 5. 创建专用连接配置(必须指定SQL Server的GroupId为sqlServer) $privateLinkServiceConnection = New-AzPrivateLinkServiceConnection ` -Name $privateLinkServiceConnectionName ` -PrivateLinkServiceId "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupNameSPOKE/providers/Microsoft.Sql/servers/$serverName" ` -GroupId "sqlServer" # 6. 创建专用端点(自动生成关联NIC,无需手动创建) $privateEndpoint = New-AzPrivateEndpoint ` -ResourceGroupName $resourceGroupNameSPOKE ` -Name $privateEndpointName ` -Location $location ` -Subnet $subnet ` -PrivateLinkServiceConnection $privateLinkServiceConnection
关键修正点说明
子网策略配置:
创建子网时必须添加-PrivateEndpointNetworkPolicies "Disabled",否则专用端点无法正常部署,这是Azure的强制要求。专用连接配置:
必须指定-GroupId "sqlServer",这是SQL Server专用链接的固定组ID,缺少此参数会导致PrivateLinkServiceConnection对象创建失败(为空)。专用端点创建参数:
使用-Subnet $subnet传入子网对象,而非不存在的-SubnetId参数。移除多余操作:
删除手动创建NIC的代码,以及无效的Add-AzPrivateLinkServiceConnection调用,专用端点会自动生成并关联NIC。操作顺序说明:
先创建SQL Server再创建专用端点是正确流程,之前的顺序问题猜测不成立,核心是参数和cmdlet的误用。
内容的提问来源于stack exchange,提问作者EmployeeBoy
相关产品推荐
相关产品推荐

