use*_*582 5 c# windows sql-server security dns
我有一个Windows域,其中一台机器运行SQL Server 2005,并配置为仅支持Windows身份验证.我想在同一网络上的计算机上运行C#客户端应用程序,但不在域上,并访问SQL Server 2005实例上的数据库.
我认为做这样的事情会很简单:
string connectionString = "Data Source=server;Initial Catalog=database;User Id=domain\user;Password=password";
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();
Run Code Online (Sandbox Code Playgroud)
但是,这失败了:客户端错误是:
System.Data.SqlClient.SqlException:用户'domain\user'登录失败,服务器端错误为:错误18456,严重级别14,状态5
我尝试了各种各样的事情,包括将集成安全性设置为true和false,以及\而不是用户ID中的\,但没有成功.
一般来说,我知道可以从非域计算机连接到SQL Server 2005实例(例如,我正在使用基于Linux的应用程序,很高兴这样做),但我似乎无法找出如何从Windows机器上做到这一点.
使用Management Studio通过Windows身份验证连接到另一个域上的服务器时,您需要在启动应用程序时使用"runas"工具.
runas /user:OTHERDOMAIN\OTHERUSERNAME /netonly
"C:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe"
Run Code Online (Sandbox Code Playgroud)
也许你可以在启动应用程序时尝试类似的东西?