Azure - 根据数据库设置IP过滤器

5
我有一个使用不同服务器的不同数据库的Azure应用程序。这些数据库是独立的,我的应用程序的每个部分只使用一个数据库。 我尝试制作一个IP过滤器。此过滤器必须识别申请者的IP,并根据此过滤器允许或拒绝访问每个数据库。这为我提供了一种使用Azure安全性允许对A进行访问而不允许对B进行访问的IP,对另一个IP允许对B进行访问而不允许对A进行访问的方法,以及对于另一个不同的IP进行完全访问的方法。 这是否可能? 谢谢,期待答案! PS:抱歉我的英语很糟糕!
2个回答

0

我相信你已经解决了这个问题,因为它已经过去几个月了,但以防万一...

假设我理解正确,你有一堆客户端与你的应用服务器通信,然后查询多个数据库服务器之一。mellamokb建议的防火墙不是一个选项,因为客户端实际上没有访问数据库,所以需要在应用服务器上进行设置。

根据客户端的IP地址选择用于访问数据库的连接字符串可能是你想要的。如果你还需要使用本地安全性锁定数据库,你需要为每个客户端创建一个命名用户帐户。

或者,你可以调查Azure SQL数据库上的Federations,并使用客户端的IP地址或类似的标识符作为分发键。


0

假设您正在引用 SQL Azure 托管的数据库,您可以使用文档此处中记录的数据库级防火墙设置。

通过使用 sp_set_database_firewall_rule 存储过程创建数据库级防火墙规则。通过在 sp_set_database_firewall_rule 存储过程的 name 参数中指定唯一名称,为基于互联网的连接添加新的防火墙设置。使用 start_ip_address 参数指定该范围内最低的 IP 地址,并使用 end_ip_address 参数指定该范围内最高的 IP 地址。name 参数是 nvarchar 数据类型,start_ip_address 和 end_ip_address 参数是 varchar 数据类型。

同样,您可以使用参数 start_ip_address 和 end_ip_address 等于 0.0.0.0 的 sp_set_database_firewall_rule 存储过程启用来自 Windows Azure 的连接尝试。


感谢您的回复!但是据我所了解,基本级别的锁定 SQL 只限制试图连接的外部应用程序的访问。通过允许所有连接 Azure 服务,无论攻击我的应用程序的 IP 是什么,与数据库联系的 IP 都是应用程序的 IP,而不是客户端的 IP(始终使用应用程序的 IP)。因此,我不知道如何限制这种访问。 - Esneik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接