配置服务器和数据库防火墙规则

已完成

防火墙用于阻止未经授权的用户访问受保护的资源。 每个 Azure SQL 数据库都映射到由 Microsoft 托管的公共 IP 地址。 每个 Azure 区域都有一个或多个公共 IP 地址,你可以通过这些地址访问数据库网关,它将转到你的数据库。

防火墙的工作原理

如下图所示,来自 Internet 和 Azure 的连接尝试必须穿过防火墙才能到达服务器或数据库。

Database and server firewall diagram for Azure SQL Database.

正如我们在上图中所见,Azure 提供了内置防火墙来限制访问,以保护数据库和数据。 Azure SQL 数据库中有两组不同的防火墙规则:服务器级防火墙规则和数据库级防火墙规则。

服务器级防火墙规则

服务器级防火墙规则和数据库级防火墙规则都使用 IP 地址规则而不是 SQL Server 登录名,并允许同一个公共 IP 地址的所有用户访问 SQL Server。 对于大多数公司来说,这是其出站 IP 地址。

服务器级防火墙配置为允许用户连接到服务器上的所有数据库。 数据库级防火墙用于授权或阻止特定 IP 地址访问特定数据库。

服务器级防火墙规则可以使用 Azure 门户进行配置,也可以使用 sp_set_firewall_rule 存储过程从 master 数据库中进行配置。

注意

“允许 Azure 服务和资源访问此服务器”服务器设置在启用时会计为单个防火墙规则。

数据库级防火墙规则

数据库级防火墙规则只能使用用户数据库中的 sp_set_database_firewall_rule 存储过程通过 T-SQL 进行配置。

连接后,Azure SQL 数据库将首先查找连接字符串中指定的数据库名称的数据库级防火墙规则。 如果不存在,防火墙将检查服务器级 IP 防火墙规则。 服务器级 IP 防火墙规则适用于服务器上的所有数据库。 如果其中一种规则存在,则将完成连接。

如果两者都不存在并且用户通过 SQL Server Management Studio 或 Azure Data Studio 进行连接,则系统将提示其创建防火墙规则,如下所示。

New Firewall Rule Screen from SQL Server Management Studio.

虚拟网络终结点

虚拟网络终结点允许来自特定 Azure 虚拟网络的流量。 这些规则在服务器级应用,而不仅是数据库级。

此外,服务终结点仅适用于一个区域,即基础终结点的区域。

额外需要注意的问题是,连接到 Azure SQL 数据库的虚拟网络必须具有对 Azure SQL 数据库的公共 IP 地址的出站访问权限,可以使用 Azure SQL 数据库的服务标记对其进行配置。

通过专用链接功能,可以使用专用终结点连接到 Azure SQL 数据库及其他 PaaS 产品/服务。

专用终结点允许完全通过 Azure 主干网络(而不通过公共 Internet)连接到 Azure SQL 数据库。

此功能在虚拟网络上提供专用 IP 地址。 专用链接的另一项功能是,它允许通过该线路实现 Azure Express Route 连接。

专用链接提供了几个优点,包括跨区域专用连接和通过只允许连接到特定资源来防范数据泄露。