【问题标题】:Remote access to Microsoft SQL Server 2012 with JDBC: alternative to username/password authentication?使用 JDBC 远程访问 Microsoft SQL Server 2012:替代用户名/密码身份验证?
【发布时间】:2014-12-14 16:19:08
【问题描述】:

我想使用 Microsoft JDBC Driver 4.0 从 Java Web 应用程序(JSP 和周边类)访问远程 Microsoft SQL Server 2012 数据库。我被告知数据库的用户名/密码,但不希望将逐字密码存储为 Web 应用程序配置的一部分。

Microsoft SQL Server 2012 是否支持我可以通过的另一种身份验证方法,例如某种服务令牌,而不是来自远程(不一定基于 Windows)主机,更一般地说,在这种情况下存储和配置数据库访问配置参数的最佳做法是什么?

【问题讨论】:

    标签: sql-server jsp authentication web-applications jdbc


    【解决方案1】:

    从 Active Directory (AD) 环境中的 Windows 框,您可以使用集成安全性。这将使用当前进程(Windows 帐户)的 AD 安全凭据连接到 SQL Server。

    在连接字符串中指定integratedSecurity=true,而不是用户名和密码。请参阅Building the Connection URL 了解更多信息。

    SQL Server 还支持使用authorizationScheme connection string 关键字指定的适用于 Linux 的 Microsoft JDBC 驱动程序的 Kerberos 身份验证。

    【讨论】:

    • +1 如果 Web 应用程序作为用户 A1 在 Windows 框 A 上的 Tomcat 上运行,并且数据库在 Windows 框 B 上的 Microsoft SQL Server 2012 上并且归用户 B1 所有,我将如何配置 AD这样 B 允许从 A1 进行 JDBC 访问并具有集成安全性?就我而言,A = B 可能是现实的,但 A1 = B1 FWIK 不是。
    • 数据库所有者对于日常应用程序访问应该无关紧要。使用 CREATE LOGIN [<your-domain-name>\A1] FROM WINDOWS; 授予用户 A1 帐户对 SQL Server 的访问权限。然后使用CREATE USER [<your-domain-name>\A1]; 授予对数据库的访问权限,并授予对使用 GRANT...ON TO [\A1]` 直接访问的数据库对象的权限。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-28
    • 2014-03-26
    • 1970-01-01
    相关资源
    最近更新 更多