之前可能已经提出这个问题,但是如果有人能够指出我正确的方向,那将是值得赞赏的!
我正在使用Azure SQL服务器,并希望从任何IP进行用户登录。但是,Azure防火墙(或我认为的任何SQL服务器?)只允许用户连接到一系列IP地址内的服务器/ make数据库查询。我如何以编程方式允许任何用户通过我的程序注册,使用任意IP向我的数据库表添加一行?
string sqlconnstring = "X";
using(SQLConnection conn = new SQLConnection(sqlconnstring)){ // <--error
...
}
答案 0 :(得分:0)
我们也使用SQL AZURE,从我所了解的情况来看,如果没有一些工作在你身边并且从我的角度来看一些安全漏洞,这是不可能的。要向防火墙添加IP,您需要连接到database already。按照这个来解决问题。问题是,你需要打开某种端点,只允许经过身份验证的人员将IP添加到防火墙,这是真正的问题,而且我认为你会想要考虑做很长很难的事情。在你做之前。
从我的角度来看,您应该为您的应用程序创建一个API并使用它。您可以使用WebAPI或WCF或其他符合您需求的内容,但您要求的是我不推荐的内容。
答案 1 :(得分:0)
用户需要直接访问数据库是非常罕见的。相反,您应该定义WCF服务并通过预定义的数据协定和服务合同公开数据。但是,如果您绝对需要让用户访问它,请在您自己的服务器上安装本地SQL Server实例,并将Azure连接添加为链接服务器。您的用户可以连接到您的服务器,并且您的服务器会查询azure。
http://asadkhan1973.blogspot.ca/2012/09/add-sql-azure-as-linked-server.html
您也可以在服务器上安装代理,让用户通过它连接到Azure。