2011-10-25 215 views
0

我正试图编写一个程序,它将从SQL Server数据库中获取数据。该程序使用C#编写在.NET平台之上。此外,该程序将在Linux主机上运行(使用单声道)。我面临的问题是从Linux机器连接到数据库,我的所有代码都可以在Windows主机上正常工作(因为服务器使用Windows身份验证),所以我的问题是:如何连接到/ authenticate SQL Server实例?SQL Server数据库连接字符串

我看过http://www.mono-project.com/SQLClient,它说要使用类似于此的字符串:"Server=MyServer;Database=pubs;User ID=MyWindowsDomain\\MyWindowsUserid;Password=MyWindowsPassword;Integrated Security=SSPI"但这不起作用。我可以在服务器上做些什么(不太可能会被允许,但作为最后的手段)?

谢谢。

+0

什么是您使用的连接字符串,并且当您尝试连接时是否有任何错误? – ChrisBint

+0

唯一的错误是它无法进行身份验证。 –

+1

单声道链接说:“但是,如果您想使用NT身份验证,您必须trully在NT/2000/2003域。” – gbn

回答

2

正如A. DIMO所说,您无法使用* NIX上的集成安全性进行身份验证。这不是一个窗口框。

在您的SQL Server Management Studio中,创建使用SQL Server身份验证而不是Windows身份验证的登录名。确保它对有问题的数据库有必要的写入。

接下来,删除连接字符串的Integrated Security=SSPI部分。这应该够了吧。

+0

部分问题是我对服务器的访问非常有限:它用于学校项目,服务器位于学校服务器上。可以改变他自己的账户认证类型吗?或者我需要一个管理员来做到这一点? –

+1

@mikhailvs您必须让School DBA创建一个SQL Server帐户供您连接。给他发一封很好的电子邮件,说“我喜欢窗户,但是...”,并确保用很多<3和XXXX完成它。 –

+0

@ Moo-Juics完成! –

4

不能使用SQL Server集成验证的Linux,你必须使用SQL Server身份验证

+0

我不是很确定Windows身份验证是如何工作的,但是您认为可能有第三方库这样做(我还没找到,但仍然)?此外,有没有办法从客户端强制SQL Server身份验证,我的意思是? –

1

虽然没有直接回答你的问题,这个网站是几乎所有的连接字符串问题有用:http://www.connectionstrings.com/

风险听起来像商业广告:这是您的连接字符串的一站式服务!

+0

+1,早在过去,它就是信息融合部分的wotsits文件格式。这很快就被connectionstrings.com取代了:D –