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