0

现在我用经典的asp和visual basic 6构建了以下架构

我有一个用 VB6 开发的 COM+ 组件,它连接到数据库。我通过一个配置了集成安全性的 .udl 文件来设置 DB conf。

在 Web 服务器 (IIS) 上,我使用 com+ 管理器注册组件,并将其配置为在帐户名下运行,例如 mydomain\appAccount...

在 sql 2005 中,我给 mydomain\appAccount 适当的权限

从asp,我只是使用带有server.createobject的组件...

我想用java开发一个类似的解决方案,问题如下:

可能吗?

如何配置域帐户以连接到 sql server 2005 db?

我应该在哪里存储 db conf?我应该在哪里配置域帐户?在 tomcat / jetty 配置中?

我希望解决方案尽可能简单直接(我试图避免使用 glassfish 或 jboss 之类的东西)

嗯,非常感谢...

4

3 回答 3

1

所以这是一个真正棘手的问题,我现在正在经历同样的问题。我还没有解决应用服务器中的模拟问题,但我的团队正在接近。

到目前为止,我们已经成功地使用 Kerberos 针对域控制器对用户进行身份验证。SourceForge SPNEGO 和 Spring Security Kerberos Extension 在这方面都非常有帮助。在连接到 SQL Server 时,我们还能够成功模拟运行 Java 应用程序的进程。真正的问题是通过委托进行模拟,因为它要求您获得可以委托给另一个服务的 Kerberos 票证。这是我们目前正在处理的问题。

如果要在 SQL Server 中模拟用户,则必须使用 NTLM 或 Kerberos。Kerberos 提供了最好的安全性,老实说,我们甚至都懒得尝试使用 NTLM。有两个 JDBC 驱动程序(我知道)允许您使用域帐户连接到 SQL Server:jTDS 和 DataDirect JDBC。jTDS 是一个 Type-2 JDBC 驱动程序,这意味着它依赖于本地库来为用户获取凭据。jTDS 只会模拟运行该进程的用户,并且不允许您模拟其他帐户(此外,它只能在 Windows 上执行此操作)。DataDirect 驱动程序(商业)是一个 Type-4 驱动程序,这意味着它是一个纯 Java 实现(并且将在 *nix 上工作)。这是我们正在使用的驱动程序,它工作得很好。

如果我得到一个有效的解决方案,我会发布它,因为我认为社区中的很多人都在这个问题上受到伤害。

祝你好运!

于 2010-02-04T12:35:49.423 回答
1

您需要做的是确保 Tomcat JVM 进程正在由具有与数据库的受信任连接的用户执行。

然后根据Bhushan 的回答,您需要在 Tomcat 中配置数据源。

以下 MSDN 文章详细介绍了如何设置数据源以使用集成安全性:

于 2009-07-18T00:24:18.813 回答
0

查看此 tomcat 文档以了解如何配置数据源。 http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html

于 2009-04-29T04:54:54.553 回答