使用Windows身份验证从非域计算机访问SQL Server 2005

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机器上做到这一点.

Mar*_*ith 5

使用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)

也许你可以在启动应用程序时尝试类似的东西?


The*_*yte 0

您是否尝试使用 machineName\UserName 连接?我还认为应该在 SQL 数据库中创建这样的用户 - 对吗?