我可以从Java EE webapp使用Windows身份验证连接到SQL Server吗?
我目前正在研究如何使用Windows身份验证而不是SQL Server身份验证从Java EE web应用程序连接到SQL Server数据库。我使用Tomcat 6.0运行这个应用程序,并使用Microsoft JDBC驱动程序。我的连接属性文件如下所示:我可以从Java EE webapp使用Windows身份验证连接到SQL Server吗?,java,sql-server,tomcat,jdbc,jakarta-ee,Java,Sql Server,Tomcat,Jdbc,Jakarta Ee,我目前正在研究如何使用Windows身份验证而不是SQL Server身份验证从Java EE web应用程序连接到SQL Server数据库。我使用Tomcat 6.0运行这个应用程序,并使用Microsoft JDBC驱动程序。我的连接属性文件如下所示: dbDriver = com.microsoft.sqlserver.jdbc.SQLServerDriver dbUser = user dbPass
dbDriver = com.microsoft.sqlserver.jdbc.SQLServerDriver
dbUser = user
dbPass = password
dbServer = localhost:1433;databaseName=testDb
dbUrl = jdbc:sqlserver://localhost:1433
在使用SQL Server身份验证时,我不会以这种方式连接到SQL Server数据库
是否有任何方法可以检索用户的Windows身份验证凭据并使用SQL Server的身份验证
更新:我知道在ASP.net中有一种方法可以设置访问Web应用程序的Windows身份验证,这正是我所要寻找的,只是我想将该令牌传递给SQL Server以访问数据库。除非您有非常令人信服的理由不这样做,否则我建议放弃MS JDBC驱动程序
相反,使用。阅读jtds发行版中的README.SSO文件,了解如何配置单点登录(本机身份验证)以及如何放置本机DLL以确保JVM可以加载本机DLL。除非您有非常令人信服的理由不这样做,否则我建议放弃MS JDBC驱动程序
相反,使用。阅读jtds发行版中的README.SSO文件,了解如何配置单点登录(本机身份验证)以及如何放置本机DLL以确保JVM可以加载本机DLL。我认为无法将用户凭据从浏览器推送到数据库(这有意义吗?我认为没有) 但是,如果您想使用运行Tomcat的用户的凭据连接到SQL Server,那么您可以使用Microsoft的JDBC驱动程序。 只需按如下方式构建JDBC URL:
jdbc:sqlserver://localhost;integratedSecurity=true;
并将相应的DLL复制到Tomcat的bin目录(驱动程序提供的sqljdbc_auth.DLL)
我认为不能将用户凭据从浏览器推送到数据库(这有意义吗?我认为没有) 但是,如果您想使用运行Tomcat的用户的凭据连接到SQL Server,那么您可以使用Microsoft的JDBC驱动程序。 只需按如下方式构建JDBC URL:
jdbc:sqlserver://localhost;integratedSecurity=true;
并将相应的DLL复制到Tomcat的bin目录(驱动程序提供的sqljdbc_auth.DLL)
看看
jTDS使用的URL格式是什么
jTDS的URL格式为:
jdbc:jtds:<server_type>://<server>[:<port>][/<database>][;<property>=<value>[;...]]
jdbc:jtds:://[:][/][;=[;…]
。。。
领域
指定要在其中进行身份验证的Windows域。如果存在并且提供了用户名和密码,jTDS将使用Windows(NTLM)身份验证而不是通常的SQL Server身份验证(即,提供的用户和密码是域用户和密码)。这允许非Windows客户端登录到仅配置为接受Windows身份验证的服务器
如果域参数存在,但未提供用户名和密码,jTDS将使用其本机单点登录库,并使用登录的Windows用户凭据登录(要使其正常工作,显然需要在Windows上登录到域,并安装SSO库——请参阅发行版中的README.SSO,了解如何执行此操作)。查看
jTDS使用的URL格式是什么
jTDS的URL格式为:
jdbc:jtds:<server_type>://<server>[:<port>][/<database>][;<property>=<value>[;...]]
jdbc:jtds:://[:][/][;=[;…]
。。。
领域
指定要在其中进行身份验证的Windows域。如果存在并且提供了用户名和密码,jTDS将使用Windows(NTLM)身份验证而不是通常的SQL Server身份验证(即提供的用户和密码是域用户和密码)。这允许非Windows客户端登录到仅配置为接受Windows身份验证的服务器
如果域参数存在,但未提供用户名和密码,jTDS将使用其本机单点登录库,并使用登录的Windows用户凭据登录(要使其正常工作,显然需要在Windows上登录到域,并安装SSO库——请参阅发行版中的README.SSO,了解如何执行此操作).我在使用Windows身份验证连接到MS SQL 2005时遇到问题。在本论坛和其他论坛的帮助下,我能够解决此问题。以下是我所做的:
Windows XP客户端在Windows 2003上使用MS SQL 2005后端托管Apache Tomcat 6我在使用Windows身份验证连接到MS SQL 2005时遇到问题。我在本论坛和其他论坛的帮助下解决了此问题。以下是我所做的:
Windows XP客户端在Windows 2003上托管Apache Tomcat 6和MS SQL 2005后端这实际上对我很有用: 根据jtdsd发行版附带的README.SSO: 为了使单点登录工作,jTDS必须能够加载本机SPPI库
ntlmauth.dll
。将此dll放置在系统路径中的任何位置(由路径
系统变量定义),然后就可以进行设置了
我把它放在