使用集成安全并指定用户名和密码连接到 JDBC

Connect to JDBC using integrated security and specifying username and password

我需要通过在连接字符串中指定用户名和密码,使用 Windows 身份验证用户连接到 SQL 服务器。

不知何故,我需要建立这样的连接才能工作:

driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
url=jdbc:sqlserver://192.168.48.61\sqlexpress2008r2;
databaseName=MyTestDatabase;integratedSecurity=true;
username=mydomain\eric;password=mypwd

因为这个要求看起来很奇怪,所以我试着解释一下我的场景:

我这样做的原因是因为我需要测试提供的 domain\username 和密码是否有效。完成此检查后,我将使用 sa 用户连接到数据库,但为登录用户分配适当的权限(取决于他的用户名)。 由于架构限制,我应该通过尝试使用 JDBC 连接到数据库来测试它,所以想法是:

如果连接已建立,我假设用户和密码是正确的。

所以我需要创建一个 JDBC 连接字符串,我在其中使用集成安全性并明确定义用户名 (DOMAIN\USER) 和密码。我没有找到任何关于如何执行此操作的示例。

driver=com.microsoft.sqlserver.jdbc.SQLServerDriver url=jdbc:sqlserver://192.168.48.61\sqlexpress2008r2; databaseName=MyTestDatabase;integratedSecurity=true; username=mydomain\eric;password=mypwd

这永远行不通。

So if there is a user abc\user1 in windows whom you want to allow access to the database, then create a SQL Server login with exactly same user name and password.

这也行不通。

您无法创建 SQL 服务器登录名(在此上下文中与 Windows 登录名 相对) “\”,它将被识别为 Windows 登录,您将收到有关无效字符的错误消息。

可信连接集成安全 意味着它不是验证您身份的服务器,而是 Windows 执行此操作.

所以你绝不能通过 Windows namepassword:你的帐户应该由 Windows 和 SQL 服务器验证信任 这些凭据。