您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn.
教程:使用 Azure 专用终结点连接到 Azure SQL 服务器 - Azure CLI
11/03/2020
本文内容
Azure 专用终结点是 Azure 中专用链接的构建基块。 它使 Azure 资源(例如虚拟机 (VM))能够以私密方式来与专用链接资源通信。
在本教程中,你将了解如何执行以下操作:
创建虚拟网络和 Bastion 主机。
创建虚拟机。
创建 Azure SQL 服务器和专用终结点。
测试到 SQL 服务器专用终结点的连接。
必备条件
具有活动订阅的 Azure 帐户。 免费创建帐户。
登录 Azure 门户,并通过运行 az login 来检查订阅是否处于活动状态。
通过运行 az --version 在终端或命令窗口中检查 Azure CLI 版本。 有关最新版本,请参阅最新发行说明。
如果没有最新版本,请按照适用于你操作系统或平台的安装指南来更新安装。
创建资源组
Azure 资源组是在其中部署和管理 Azure 资源的逻辑容器。
命名为 CreateSQLEndpointTutorial-rg。
在位置“eastus”中。
az group create \
--name CreateSQLEndpointTutorial-rg \
--location eastus
创建虚拟网络和堡垒主机
在本部分中,你将创建虚拟网络、子网和堡垒主机。
堡垒主机将用于安全地连接到虚拟机,以测试专用终结点。
命名为“myVNet”。
地址前缀为 10.0.0.0/16。
子网命名为“myBackendSubnet”。
子网前缀为 10.0.0.0/24。
在 CreateSQLEndpointTutorial-rg 资源组中。
eastus 的位置。
az network vnet create \
--resource-group CreateSQLEndpointTutorial-rg\
--location eastus \
--name myVNet \
--address-prefixes 10.0.0.0/16 \
--subnet-name myBackendSubnet \
--subnet-prefixes 10.0.0.0/24
az network vnet subnet update \
--name myBackendSubnet \
--resource-group CreateSQLEndpointTutorial-rg \
--vnet-name myVNet \
--disable-private-endpoint-network-policies true
创建名为“myBastionIP”的标准区域冗余公共 IP 地址。
在 CreateSQLEndpointTutorial-rg 中。
az network public-ip create \
--resource-group CreateSQLEndpointTutorial-rg \
--name myBastionIP \
--sku Standard
命名为 AzureBastionSubnet。
地址前缀为 10.0.1.0/24。
在虚拟网络“myVNet”中。
在资源组 CreateSQLEndpointTutorial-rg 中。
az network vnet subnet create \
--resource-group CreateSQLEndpointTutorial-rg \
--name AzureBastionSubnet \
--vnet-name myVNet \
--address-prefixes 10.0.1.0/24
命名为 myBastionHost。
在 CreateSQLEndpointTutorial-rg 中。
与公共 IP myBastionIP 相关联。
与虚拟网络 myVNet 相关联。
在位置“eastus”中。
az network bastion create \
--resource-group CreateSQLEndpointTutorial-rg \
--name myBastionHost \
--public-ip-address myBastionIP \
--vnet-name myVNet \
--location eastus
部署 Azure Bastion 主机需要几分钟时间。
创建测试虚拟机
在本部分中,你将创建将用来测试专用终结点的虚拟机。
使用 az vm create 创建 VM。 出现提示时,请提供要用作 VM 凭据的密码:
名为 myVM。
在 CreateSQLEndpointTutorial-rg 中。
在网络 myVNet 中。
在子网“myBackendSubnet”中。
服务器映像 Win2019Datacenter。
az vm create \
--resource-group CreateSQLEndpointTutorial-rg \
--name myVM \
--image Win2019Datacenter \
--public-ip-address "" \
--vnet-name myVNet \
--subnet myBackendSubnet \
--admin-username azureuser
备注
Azure 为未获得公共 IP 地址或位于内部基本 Azure 负载均衡器后端池中的 Azure 虚拟机提供临时 IP。 临时 IP 机制可提供无法配置的出站 IP 地址。
如果将公共 IP 地址分配给某个虚拟机或将该虚拟机置入具有或不具有出站规则的标准负载均衡器的后端池中时,将禁用其原有的临时 IP。 如果向虚拟机的子网分配 Azure 虚拟网络 NAT 网关资源,也会禁用其临时 IP。
有关 Azure 中出站连接的详细信息,请参阅为出站连接使用源网络地址转换 (SNAT)。
创建 Azure SQL 服务器
在本部分中,你将创建一个 SQL 服务器和数据库。
将 替换为唯一服务器名称。
使用你的密码替换 。
在 CreateSQLEndpointTutorial-rg 中。
在 eastus 区域中。
az sql server create \
--name \
--resource-group CreateSQLEndpointTutorial-rg \
--location eastus \
--admin-user sqladmin \
--admin-password
命名为 myDataBase。
在 CreateSQLEndpointTutorial-rg 中。
将 替换为唯一服务器名称。
az sql db create \
--resource-group CreateSQLEndpointTutorial-rg \
--server \
--name myDataBase \
--sample-name AdventureWorksLT
创建专用终结点
在本部分中,你将创建专用终结点。
使用 az sql server list 将 SQL 服务器的资源 ID 置于 shell 变量中。
命名为 myPrivateEndpoint。
在资源组 CreateSQLEndpointTutorial-rg 中。
在虚拟网络“myVNet”中。
在子网“myBackendSubnet”中。
名为 myConnection 的连接。
id=$(az sql server list \
--resource-group CreateSQLEndpointTutorial-rg \
--query '[].[id]' \
--output tsv)
az network private-endpoint create \
--name myPrivateEndpoint \
--resource-group CreateSQLEndpointTutorial-rg \
--vnet-name myVNet --subnet myBackendSubnet \
--private-connection-resource-id $id \
--group-ids sqlServer \
--connection-name myConnection
配置专用 DNS 区域
区域名为 privatelink.database.windows.net
在虚拟网络“myVNet”中。
在资源组 CreateSQLEndpointTutorial-rg 中。
名为 myDNSLink 的 DNS 链接。
与 myPrivateEndpoint 相关联。
名为 MyZoneGroup 的区域组。
az network private-dns zone create \
--resource-group CreateSQLEndpointTutorial-rg \
--name "privatelink.database.windows.net"
az network private-dns link vnet create \
--resource-group CreateSQLEndpointTutorial-rg \
--zone-name "privatelink.database.windows.net" \
--name MyDNSLink \
--virtual-network myVNet \
--registration-enabled false
az network private-endpoint dns-zone-group create \
--resource-group CreateSQLEndpointTutorial-rg \
--endpoint-name myPrivateEndpoint \
--name MyZoneGroup \
--private-dns-zone "privatelink.database.windows.net" \
--zone-name sql
测试到专用终结点的连接
本部分将使用在上一步骤中创建的虚拟机通过专用终结点连接到 SQL 服务器。
在左侧导航窗格中选择“资源组”。
选择“CreateSQLEndpointTutorial-rg”。
选择“myVM”。
在 myVM 的“概述”页上,选择“连接”,然后选择“堡垒”。
选择蓝色的“使用堡垒”按钮。
输入在创建虚拟机期间输入的用户名和密码。
连接后,在服务器上打开 Windows PowerShell。
输入 nslookup .database.windows.net。 将 替换为在上一步骤中创建的 SQL 服务器的名称。 你将收到类似于以下所示内容的消息:
Server: UnKnown
Address: 168.63.129.16
Non-authoritative answer:
Name: mysqlserver8675.privatelink.database.windows.net
Address: 10.0.0.5
Aliases: mysqlserver8675.database.windows.net
将为 SQL 服务器名称返回专用 IP 地址 10.0.0.5。 此地址位于你之前创建的虚拟网络的子网中。
打开 SQL Server Management Studio 。
在“连接服务器”中,输入或选择以下信息:
设置
值
服务器类型
选择“数据库引擎”。
服务器名称
输入 .database.windows.net
身份验证
选择“SQL Server 身份验证”。
用户名
输入在服务器创建过程中所输入的用户名
Password
输入在服务器创建过程中所输入的密码
记住密码
请选择“是”。
选择“连接”。
浏览左侧菜单中的数据库。
(可选)创建或查询 mydatabase 中的信息。
关闭到 myVM 的堡垒连接。
清理资源
用完专用终结点、SQL 服务器和 VM 之后,请删除资源组及其包含的所有资源:
az group delete \
--name CreateSQLEndpointTutorial-rg
后续步骤
在本教程中,你已创建:
虚拟网络和堡垒主机。
虚拟机。
具有专用终结点的 Azure SQL 服务器。
你使用虚拟机通过专用终结点安全测试了到 SQL 服务器的连接。
对于下一步,你可能还会对“与 Azure SQL 数据库建立专用连接的 Web 应用”体系结构场景感兴趣,该场景将虚拟网络以外的 Web 应用程序连接到数据库的专用终结点。