将静态IP与Azure SQL服务器/数据库关联

时间:2016-05-10 18:08:42

标签: azure azure-sql-database load-balancing

我需要将公共静态IP地址与指向Azure SQL服务器的点相关联,服务器只有DNS名称但没有IP地址。我已经尝试过Azure Load Balancer,Trafic Manager和DNS,并且在任何服务中都有一个选项可以将指向数据库名称的静态IP关联起来,例如DB名称是:testnetmarksrv.database.windows.net 任何选择......?

3 个答案:

答案 0 :(得分:2)

没有。您无法为Azure SQL数据库获取静态IP地址分配。此外,您所引用的内容(testnetmarksrv。database.windows.net)指定您的Azure SQL数据库服务器,而不是单个数据库。这是一个逻辑服务器,您最多可以放置149个数据库(150个主数据库)。

您必须解决静态IP地址分配的要求才能使用DNS名称(testnetmarksrv.database.windows.net)。

答案 1 :(得分:0)

您需要按照Azure SQL Connectivity Architecture中所述将服务器连接策略设置为Proxy。这允许数据库网关代理客户端和数据库服务器之间的所有流量。网关均具有静态IP地址,该地址已在上面的文档中列出。

如果连接来自Azure以外,当前大多数区域默认使用Proxy连接策略,但这在2019年1月2日发生了变化,因此,如果需要静态IP地址,请确保明确设置策略。

答案 2 :(得分:0)

此体系结构提供了答案Azure SQL Database gateway IP addresses。 该表包含每个区域的公共IP地址,这是您需要使用防火墙的配置(网关的公共IP地址作为防火墙的目标地址),并允许在端口1433上出站流量的端口,因为这是唯一的端口网关将监听。 我进行了一些测试,以确保mydatabase.windows.net解析为表中显示的IP地址,并且它似乎对我有用。我不知道这是否是Microsoft列出其IP地址的公共IP地址的正式记录,因为我看不到该列表中的一些较新的数据中心。您需要做的另一件事是将Azure SQL Datase连接设置为代理模式。 following powershell将对此进行设置。

获取SQL Server ID

$sqlserverid=(Get-AzSqlServer -ServerName sql-server-name -ResourceGroupName sql-server-group).ResourceId

设置URI

$id="$sqlserverid/connectionPolicies/Default"

获取当前的连接策略

(Get-AzResource -ResourceId $id).Properties.connectionType

更新连接策略

Set-AzResource -ResourceId $id -Properties @{"connectionType" = "Proxy"} -f

我不确定您为什么需要限制出站SQL通信量,但会敦促您也了解一下如何限制与Azure SQL数据库的入站连接。 这应该在您的Azure SQL数据库所在的Azure SQL Server上完成。以下是一些资源,可帮助您配置Azure SQL Server防火墙规则,并提供了许多方法来设置防火墙规则,包括通过属性,SQL和命令行。 Azure SQL Database and SQL Data Warehouse IP firewall rules

希望这会有所帮助!