You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

关键修正点说明

  1. 子网策略配置:
    创建子网时必须添加-PrivateEndpointNetworkPolicies "Disabled",否则专用端点无法正常部署,这是Azure的强制要求。

  2. 专用连接配置:
    必须指定-GroupId "sqlServer",这是SQL Server专用链接的固定组ID,缺少此参数会导致PrivateLinkServiceConnection对象创建失败(为空)。

  3. 专用端点创建参数:
    使用-Subnet $subnet传入子网对象,而非不存在的-SubnetId参数。

  4. 移除多余操作:
    删除手动创建NIC的代码,以及无效的Add-AzPrivateLinkServiceConnection调用,专用端点会自动生成并关联NIC。

  5. 操作顺序说明:
    先创建SQL Server再创建专用端点是正确流程,之前的顺序问题猜测不成立,核心是参数和cmdlet的误用。

内容的提问来源于stack exchange,提问作者EmployeeBoy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 15:54:58