使用集成安全并指定用户名和密码连接到 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
因为这个要求看起来很奇怪,所以我试着解释一下我的场景:
在我的应用程序中,用户被映射到 SQL 服务器用户(使用 sql 身份验证或 windows 身份验证)
局域网内有Windows客户端访问数据库
我正在编写一个 Web 应用程序 (Tomcat8 servlet) 以从互联网访问数据库:在这种情况下,我希望用户在登录屏幕中键入 domain\username 和密码以登录他在
我这样做的原因是因为我需要测试提供的 domain\username 和密码是否有效。完成此检查后,我将使用 sa 用户连接到数据库,但为登录用户分配适当的权限(取决于他的用户名)。
由于架构限制,我应该通过尝试使用 JDBC 连接到数据库来测试它,所以想法是:
为 windows 身份验证用户创建连接字符串
尝试连接
如果连接已建立,我假设用户和密码是正确的。
所以我需要创建一个 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 name
和 password
:你的帐户应该由 Windows 和 SQL 服务器验证信任 这些凭据。
我需要通过在连接字符串中指定用户名和密码,使用 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
因为这个要求看起来很奇怪,所以我试着解释一下我的场景:
在我的应用程序中,用户被映射到 SQL 服务器用户(使用 sql 身份验证或 windows 身份验证)
局域网内有Windows客户端访问数据库
我正在编写一个 Web 应用程序 (Tomcat8 servlet) 以从互联网访问数据库:在这种情况下,我希望用户在登录屏幕中键入 domain\username 和密码以登录他在
我这样做的原因是因为我需要测试提供的 domain\username 和密码是否有效。完成此检查后,我将使用 sa 用户连接到数据库,但为登录用户分配适当的权限(取决于他的用户名)。 由于架构限制,我应该通过尝试使用 JDBC 连接到数据库来测试它,所以想法是:
为 windows 身份验证用户创建连接字符串
尝试连接
如果连接已建立,我假设用户和密码是正确的。
所以我需要创建一个 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 name
和 password
:你的帐户应该由 Windows 和 SQL 服务器验证信任 这些凭据。