2014-09-12 104 views
0

我开发了一个ac#程序,我想用它从同一个域上的客户端计算机访问远程服务器。每次尝试连接到数据库时,都会收到错误登录失败,用户域\ myclientusername更正访问远程数据库服务器的连接字符串

使用下面的连接字符串:

<add name="dbname" connectionString="Server=remoteservername;Database=dbname;Integrated Security=True;"/> 

我已经检查和服务器设置为允许远程连接。我能够使用管理员凭证登录服务器吗?我需要设置连接字符串以使用管理员密码和用户名连接到数据库吗?或者是否需要将我的客户端配置文件凭据添加到数据库权限。部署应用程序非常新颖。

+1

使用集成安全性=真,意味着他们使用相同的用户名和密码登录到数据库,就像他们登录到计算机时一样。这对每个人来说都是如此,或者只有你自己? – DidIReallyWriteThat 2014-09-12 14:00:14

+0

您的应用程序是桌面(WPF/Forms)还是Intranet/IIS应用程序? – Jedediah 2014-09-12 14:00:37

+0

而不是'Integrated Security = True;'尝试'User Id = myUsername;密码= myPassword;' – 2014-09-12 14:05:21

回答

0

您需要为连接的用户/客户端PC设置对数据库的访问权限。你排序的域上的用户“映射”到一个SQL用户或组

转到SQL管理工作室>连接到数据库>扩展数据库>展开“安全”,然后“登录”

右键点击登录并选择新的登录。搜索连接用户/客户端PC的用户。然后在“用户映射”选项卡下,您可以访问特定的数据库。最好先给“db_owner”,以确保你有连接。在此之后,您应该只将访问权限限制在需要的范围内。

你可以随时从SQL机器本身检查SQL事件日志,看看具体的认证问题可能是什么。请转至管理工具(位于控制面板中)中的“事件”,您可以看到特定于SQL的事件。

+1

感谢这工作。我保留了集成并将我的用户配置文件添加到日志中 – user2382789 2014-09-12 14:46:55

0

您可以删除连接字符串中的Integrated Security=True,并将您在SQL Server数据库中创建的登录的用户名和密码插入连接字符串。

或者,您可以为运行c#程序的用户(您自己 - 用于测试,生产中的域服务帐户)创建一个登录到SQL Server,并为其提供适当的读/写访问权限。

连接字符串的详细信息:http://msdn.microsoft.com/en-us/library/aa337562.aspx

0

当您设置Integrated Security=True,当前的Windows帐户凭据用于验证:如何在SQL Server中创建登录http://www.connectionstrings.com

更多信息。 由于您尝试的是与运行SQL实例的计算机不同的PC,因此很可能您尝试连接的计数与注册实例登录的计数不同。 您可以执行的操作是: 使用Integrated Security=sspi并提供登录凭据,如:

connectionString="Server=remoteservername;Database=dbname;User id= myUser; Password=myPass;Integrated Security=sspi"; 

您还可以设置Integrated Security=false,并且还提供凭据,(但连接不会使用Windows Athentication)

相关问题