【发布时间】:2018-05-21 16:30:46
【问题描述】:
显然,必须明确指定(白名单)允许访问 SQL Azure DB 的 IP 地址。不过,我希望有 N-gazillion* 用户访问这些表以获取特定于他们的数据。
- 自大/自大妄想
这些是否需要首先向我提供他们的 IP 地址,以便我可以将其添加为有效条目,或者是否有编程方式或其他解决方法?
【问题讨论】:
显然,必须明确指定(白名单)允许访问 SQL Azure DB 的 IP 地址。不过,我希望有 N-gazillion* 用户访问这些表以获取特定于他们的数据。
这些是否需要首先向我提供他们的 IP 地址,以便我可以将其添加为有效条目,或者是否有编程方式或其他解决方法?
【问题讨论】:
建议让某种中间件访问数据库,而不是直接访问您的客户端。
但是,如果您希望任何 IP 都能够连接到数据库,只需将此条目添加到防火墙列表中:
Azure 门户 -> 数据库 -> 服务器 -> 配置并添加以下规则:
【讨论】:
1.1.1.1 到255.255.255.255。
您的用户将如何访问数据库,通过 Web 应用程序(前端)或直接(我假设您不会让用户直接访问您的数据库?),如果它通过 Web 应用程序(表示层)然后您需要做的就是授予对表示层/服务层的这个 IP 地址的访问权限(如果托管在 Azure 中,它就在它旁边)。
SQL DB Azure 有两种类型的访问限制(更多信息在这里)“Windows Azure SQL Database Firewall”
您可以打开所有 IP 地址 0.0.0.0 - 255.255.255.255(不是很安全),或者根据上述数据库防火墙规则提出更细粒度的策略。
【讨论】:
唯一的方法是通过 SQL 查询。 Azure 仅显示仅在门户上可见的防火墙服务器规则,但在数据库级别上,唯一的方法是通过 SQL。
-- Enable Allconnections.
EXECUTE sp_set_database_firewall_rule N'Allow All', '0.0.0.0', '255.255.255.255';
【讨论】:
Login to azure Portal
select your database subscription
click on Tools
Now there is option 'Open in VisualStudio' (click on it)
You can see "Configure Firewall" click on it.
Add you new IP.
Done :)
【讨论】:
如果您让他们直接与您的数据库对话(例如通过 SSMS),您需要输入他们的 IP(或者您可以将整个范围列入白名单)。通常他们会通过您自己的 API 使用您的数据库,因此不需要将他们的 IP 地址列入白名单。
【讨论】: