1

我正在开发一个在 Linux/WebLogic 上运行的 Java 项目,该项目需要与仅允许通过 Windows 域帐户进行身份验证的现有 SQL Server 实例集成。我见过 .Net 应用程序使用模拟来连接和运行查询作为具有权限的域帐户。

有没有一种等效的方法可以用 Java 做到这一点?

4

1 回答 1

0

虽然这个问题与潜在的重复问题密切相关,但我将发布我的答案,希望它对将来的某人有所帮助。

我们所做的是定义一个非 jndi 数据源:

<bean id="nonJndiDataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driver" value="net.sourceforge.jtds.jdbcx.JtdsDataSource"/>
    <property name="url" value="${url}"/>
    <property name="username" value="${user}"/>
    <property name="password" value="${password}"/>
    <property name="initialSize" value="${initial_size}"/>
    <property name="maxActive" value="${max_active}"/>
    <property name="maxWait" value="${max_wait}"/>
    <property name="minIdle" value="${min_idle}"/>
    <property name="maxIdle" value="${max_idle}"/>
</bean>

使用以下属性文件(设置 bean 中的值):

# Hibernate specific property
dialect=org.hibernate.dialect.SQLServer2008Dialect

# This is the key line
url=jdbc:jtds:sqlserver://127.0.0.1;databaseName=yourDatabase;useNTLMv2=true;domain=nameOfDomain

user=windows_account
password=password
initial_size=5
max_active=30
max_wait=600000
min_idle=0
max_idle=10

然后可以将其连接到 JDBC、Hibernate、JDBI 或其他一些基于 JDBC 的框架中。

这篇文章的一个问题是 jTDS 的版本。1.3 版需要 Java 7 - 我们最终拉取了 1.2.x 版的 jar。

于 2013-07-10T01:35:35.167 回答