我需要使用Windows身份验证用户通过在连接字符串中指定用户名和密码来连接到SQL Server。
不知何故,我需要像这样建立一个连接:
driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
url=jdbc:sqlserver://192.168.48.61\\sqlexpress2008r2;
databaseName=MyTestDatabase;integratedSecurity=true;
username=mydomain\eric;password=mypwd
由于要求似乎很奇怪,我试图放弃我的方案:
在我的应用程序中,用户被映射到SQL Server用户(使用sql身份验证或Windows身份验证)
有一个Windows客户端可以从LAN内部访问数据库
我正在编写一个Web应用程序(Tomcat8 servlet)来从Internet访问数据库:在这种情况下,我希望用户在登录屏幕中键入domain \ username和password以登录他
< / LI>我这样做的原因是因为我需要测试提供的域\用户名和密码是否有效。完成此检查后,我将与sa用户连接到db,但为登录用户分配适当的权限(取决于他的用户名)。 由于架构约束,我应该通过尝试使用JDBC来连接数据库来测试这个,所以想法是:
为Windows身份验证用户创建连接字符串
尝试连接
如果连接已经确定,我假设用户和密码是正确的。
所以我需要创建一个JDBC连接字符串,其中我使用集成安全性,我明确定义了用户名(DOMAIN \ USER)和密码。我没有找到任何关于如何执行此操作的示例。
答案 0 :(得分:3)
驱动= com.microsoft.sqlserver.jdbc.SQLServerDriver URL = JDBC:SQLSERVER://192.168.48.61 \ sqlexpress2008r2; 的databaseName = MyTestDatabase;的 integratedSecurity =真强>; 的用户名= MYDOMAIN \埃里克;密码= MYPWD 强>
这绝不会有效。
因此,如果您希望允许Windows中的用户abc \ user1 访问数据库,然后完全创建SQL Server登录 相同的用户名和密码。
这也永远不会奏效。
您无法使用“\
”创建 SQL Server登录(在此上下文中与 Windows登录相对),它将被识别为Windows登录并且你会收到有关无效字符的错误。
可信连接或集成安全性意味着它不是对您进行身份验证的服务器,但它是执行此操作的Windows。
因此,您无法通过Windows name
和password
:您的帐户应该由Windows验证,而SQL Server只会信任这些凭据。