DSN,ODBC:如何使用不同的Windows帐户创buildDSN

是否有可能创buildDSN(ODBC到SQL Server)使用不同的Windows帐户比当前的计算机login帐户? 我正在尝试创build系统DSN到SQL Server,我想使用我的pipe理员帐户使用Windows身份validation创build此连接。 我正在创build这个DSN使用我的正常的Windows帐户。

系统DSN根据定义适用于整个计算机,无论使用哪个login帐户(因此,如果我正在阅读您的问题),这意味着(1)答案是“是”,(2)您将需要pipe理员创buildDSN的权利。

顺便说一下,你看起来像DSN-less连接吗? 我相信,他们会更适合您的需求,也可以在您的应用程序可以使用之前删除客户端configuration的需要。

您也可以使用“runas”命令在您的pipe理员帐户下启动ODBC数据源pipe理员,同时以您的正常帐户login。 这将使您能够configuration和testing连接,而不会收到“用户不与可信SQL连接关联”错误。

以下是命令提示符命令的示例:

 runas /netonly /user:domain\adminusername "C:\Windows\System32\odbcad32.exe" 

正如Jimmy所说,DSN定义不会与pipe理员帐户绑定,但会使用您以后login时使用的任何Windows身份validation帐户。 (所以你需要再次使用“runas”来启动任何使用连接的程序,除非你是在你的pipe理员帐户下login的。)

我要添加到Mac的答案,是的,这肯定可以设置ODBC连接,它的工作了一段时间。 可能只要Kerberos身份validation保持活动状态。 不幸的是,这不是我想用于系统DSN的永久身份validation。 这里是我用来启动odbcad32.exe的batch file:

 net use \\dbserver-host /user:DOMAIN\username runas /netonly /user:DOMAIN\username C:\Windows\syswow64\odbcad32.exe 

请注意,这可能会导致提示您login两次,但似乎比runas本身运行更一致。

我不相信有能力做到这一点。 使用可信任的NT连接到SQL Server意味着在向服务器进行身份validation时没有发送密码,并且使用现有的NT令牌进行身份validation。 换句话说,SQL Server“信任”NT身份validation。 它将使用连接时login的任何用户。