2016-02-27 156 views
1

这可能以前曾被问过,但如果有人可以指出我将正确的方向,将不胜感激!SQL Server用户登录

我正在使用Azure SQL服务器,并希望让用户从任何IP登录。但是,Azure防火墙(或者我认为的任何SQL服务器)仅允许用户连接到IP地址范围内的服务器/制造数据库查询。我如何以编程方式允许任何用户通过我的程序用任意IP向我的数据库表中添加一行进行注册?

string sqlconnstring = "X"; 
using(SQLConnection conn = new SQLConnection(sqlconnstring)){ // <--error 
... 
} 

回答

0

我们也使用SQL Azure和好,从我了解它,这将不是没有在你的身边,并从我的角度视图的一些安全漏洞的一些工作是不可能的。为了将IP添加到防火墙,您需要连接到database already。按照这个来弄清楚那个。问题在于,您需要打开某种端点,只允许经过身份验证的人员向防火墙添加IP,这是真正的问题,我认为您需要考虑长时间,在你做之前。

从我的角度来看,您应该为您的应用程序创建一个API并使用它。您可以使用WebAPIWCF或其他符合您需要的东西,但您所要求的是我不推荐的。

0

用户需要直接访问数据库非常罕见。相反,您应该定义一个WCF服务,并通过预定义的数据合同和服务合约来公开数据。但是,如果您绝对需要让用户访问它,请在您自己的服务器上安装本地SQL Server实例,然后将Azure连接添加为链接服务器。您的用户可以连接到您的服务器,并且您的服务器查询天蓝色。

http://asadkhan1973.blogspot.ca/2012/09/add-sql-azure-as-linked-server.html

你也只是你的服务器上安装一个代理,让用户连接通过它到Azure。

+0

我希望我不会混淆你说的话。但是,我想要做的是允许用户使用简单的GUI登录,然后在屏幕上返回其个人资料信息。但我不知道如何提交一个查询来获取他们的信息,而不需要在azure防火墙中拥有他们的IP,因为他们需要一个授权的连接字符串到数据库才能获得他们各自的信息。我不希望他们访问我的天蓝色门户。 –

+0

也许一个更好的问题有助于强调我的困惑的来源 - 并请记住即时通讯新的SQL。将IP添加到Azure防火墙允许哪些内容?如果我的程序位于其他人的计算机上,可以通过按钮单击来向我的Azure服务器执行SQL查询吗? –

+0

因此,在这种情况下,您需要设计一个WCF Web服务,您将在自己的服务器上托管,客户端应用程序将连接到该Web服务,该方法公开了一个.GetProfile()方法,该方法又会查询您的数据库。这样客户端应用程序只连接到你的服务,而不是数据库。 –