是否有可能使用与当前计算机登录帐户不同的 Windows 帐户创建 DSN(ODBC 到 SQL Server)?我正在尝试创建到 SQL Server 的系统 DSN,并且我想使用我的管理员帐户使用 Windows 身份验证来创建此连接。我正在使用我的普通 Windows 帐户创建此 DSN。
是否有可能使用与当前计算机登录帐户不同的 Windows 帐户创建 DSN(ODBC 到 SQL Server)?我正在尝试创建到 SQL Server 的系统 DSN,并且我想使用我的管理员帐户使用 Windows 身份验证来创建此连接。我正在使用我的普通 Windows 帐户创建此 DSN。
您还可以使用“runas”命令在您的管理员帐户下启动 ODBC 数据源管理器,同时以您的普通帐户登录。这将使您能够配置和测试连接,而不会收到“用户未与受信任的 SQL 连接关联”错误。
这是一个示例命令提示符命令:
正如 Jimmy 所说,DSN 定义不会与管理员帐户绑定,而是会使用您登录的任何 Windows 身份验证帐户,就像以后使用连接时一样。(因此,您需要再次使用“runas”来启动任何使用该连接的程序,除非您使用管理员帐户登录。)
根据定义,系统 DSN 适用于整个计算机,无论使用哪个登录帐户,因此(如果我没看错您的问题)这意味着(1)答案是“是”,并且(2)您需要管理员创建 DSN 的权利。
顺便说一句,您是否将其视为无 DSN 连接?我相信它们会更适合您的要求,并且在使用您的应用程序之前也无需进行客户端配置。
我要在 Mac 的回答中补充一点,是的,这绝对可以设置 ODBC 连接,并且可以工作一段时间。可能只要 Kerberos 身份验证保持活动状态。不幸的是,这不是我希望用于系统 DSN 的永久身份验证。这是我用来启动 odbcad32.exe 的批处理文件:
请注意,这可能会导致您被提示登录两次,但它似乎比 runas 本身更稳定地工作。
我不相信有能力做到这一点。使用与 SQL Server 的受信任 NT 连接意味着在向服务器进行身份验证时没有发送密码,并且使用现有的 NT 令牌进行身份验证。换句话说,SQL Server“信任”NT 身份验证。它将使用连接时登录的任何用户。
我发现使用 Windows 凭据管理器效果很好。您可以直接添加 Windows 凭据。诀窍是您需要拥有包括端口在内的完全限定域名,以及带有域限定符的完整 Active Directory 用户名,例如
mydb.myinternaldomain.com:1433
和myinternaldomain\myusername
密码。然后您可以添加mydb.myinternaldomain.com
为 ODBC 源,Windows 将神奇地交换正确的凭据。这也适用于 Sql Server Management Studio。它似乎不适用于非 Windows 本机应用程序,您仍然需要 runas。