Visual studio Azure数据库上的白名单程序

Visual studio Azure数据库上的白名单程序,visual-studio,azure,Visual Studio,Azure,我正在开发一个使用Azure作为数据库的程序。它工作得很好,只是我必须授权我访问它的每个IP地址。所以,如果我去朋友家,我必须授权该IP,如果我去咖啡店,我必须授权该IP 我希望有一种方法可以授权程序的连接,不管它来自哪个IP。或者,更糟糕的是,塞纳里奥,关闭安全措施。不要 防火墙数据库背后的想法是保护您的数据不受任何可能具有SQL Server凭据的数据泄漏的影响。这是为了你自己的安全 相反,尝试使用ASP.NETWS/Jax-RS/Rails/编写一个快速Web服务。。。以理智、安全和周到的

我正在开发一个使用Azure作为数据库的程序。它工作得很好,只是我必须授权我访问它的每个IP地址。所以,如果我去朋友家,我必须授权该IP,如果我去咖啡店,我必须授权该IP


我希望有一种方法可以授权程序的连接,不管它来自哪个IP。或者,更糟糕的是,塞纳里奥,关闭安全措施。

不要

防火墙数据库背后的想法是保护您的数据不受任何可能具有SQL Server凭据的数据泄漏的影响。这是为了你自己的安全


相反,尝试使用ASP.NETWS/Jax-RS/Rails/编写一个快速Web服务。。。以理智、安全和周到的方式公开数据库数据。这并不难,而且有很多关于这方面的教程和书籍。

不要

防火墙数据库背后的想法是保护您的数据不受任何可能具有SQL Server凭据的数据泄漏的影响。这是为了你自己的安全


相反,尝试使用ASP.NETWS/Jax-RS/Rails/编写一个快速Web服务。。。以理智、安全和周到的方式公开数据库数据。这并不难,而且有很多关于这方面的教程和书籍。

虽然不推荐但如果您想关闭此安全措施,可以通过在Azure Portal中将IP地址范围设置为
0.0.0-255.255.255
来允许从所有IP地址连接到SQL数据库

另一种选择是使用Azure服务管理API动态管理允许的IP地址。您可以使用此API管理防火墙规则。您可以在此处阅读更多信息:


所以你可以做的就是在Azure中运行一个小服务。当应用程序启动时,它会将当前IP地址发送到您的服务,并且您的服务会在防火墙规则中设置IP地址。当应用程序终止时,它会向您的服务发送另一个请求,然后您的服务将该IP地址从防火墙规则中删除。

尽管不推荐使用,但是,如果要关闭此安全措施,可以通过在Azure Portal中将IP地址范围设置为
0.0.0.0-255.255.255
来允许从所有IP地址连接到SQL数据库

另一种选择是使用Azure服务管理API动态管理允许的IP地址。您可以使用此API管理防火墙规则。您可以在此处阅读更多信息:


所以你可以做的就是在Azure中运行一个小服务。当应用程序启动时,它会将当前IP地址发送到您的服务,并且您的服务会在防火墙规则中设置IP地址。当应用程序终止时,它会向您的服务发送另一个请求,然后您的服务将该IP地址从防火墙规则中删除。

正如@Machinarius如此雄辩地说的那样不要。NET已经有了一种通过OData服务公开数据的方法。您可以获得SOAP或Json、LINQ查询、缓存、安全性,甚至是实体或操作级别

将EF模型公开为OData服务非常容易。您可以使用“Web API 2 OData Controller with actions,using Entity Framework”模板创建ASP.NET Web API OData端点,如“”教程中所述

要从客户机调用该服务,需要向其添加服务引用,然后使用代理执行LINQ查询。它可以是简单的事情,比如:

Uri uri = new Uri("http://localhost:1234/odata/");
var container = new ProductService.Container(uri);
var myProducts=container.Products.Where(....);

查看“”以了解详细教程。

正如@Machinarius如此雄辩地说的不要。NET已经有了一种通过OData服务公开数据的方法。您可以获得SOAP或Json、LINQ查询、缓存、安全性,甚至是实体或操作级别

将EF模型公开为OData服务非常容易。您可以使用“Web API 2 OData Controller with actions,using Entity Framework”模板创建ASP.NET Web API OData端点,如“”教程中所述

要从客户机调用该服务,需要向其添加服务引用,然后使用代理执行LINQ查询。它可以是简单的事情,比如:

Uri uri = new Uri("http://localhost:1234/odata/");
var container = new ProductService.Container(uri);
var myProducts=container.Products.Where(....);

查看“”以获取详细教程。

如果您需要从任意位置访问应用程序,为什么不在Azure中配置VM并安装应用程序呢。当你需要你的应用程序时,启动虚拟机,RDP并通过RDP工作。不需要更新连接,而且比允许随机IP访问数据库更安全


我意识到这并不是你问题的答案,但其他stackoverflowers已经为你的问题提供了重要的信息。我完全同意他们的观点。不要禁用防火墙。这是为了你好

另一种选择是,如果您需要从任意位置访问您的应用程序,为什么不在Azure中配置VM并安装应用程序呢。当你需要你的应用程序时,启动虚拟机,RDP并通过RDP工作。不需要更新连接,而且比允许随机IP访问数据库更安全


我意识到这并不是你问题的答案,但其他stackoverflowers已经为你的问题提供了重要的信息。我完全同意他们的观点。不要禁用防火墙。这是为了你好

现在所有的东西都被输入到datatable结构中,这对于在Azure上查询和过滤数据非常有用。从Azure中提取我需要的所有数据并将其放入datatable中,然后对其运行我的所有查询,速度相对较快。我们还有一个带有PHP的Azure网站,我可以编写某种API,但是从API(JSON或其他什么)获取输出并将其放入数据表有多容易。拥有能够提取和输出数据的网站真的会比其他网站安全吗