使用 JDBC 将自己制作的 Windows 凭据传递给 SQL Server

Posted

技术标签:

【中文标题】使用 JDBC 将自己制作的 Windows 凭据传递给 SQL Server【英文标题】:Pass own made Windows Credentials to SQL Server using JDBC 【发布时间】:2015-07-08 12:42:56 【问题描述】:

我正在尝试编写一个在工作中连接到 SQL Server 的程序,我已经完成并且运行良好。但是,该程序仅适用于我工作场所的桌面,因为它连接到我希望它连接到本地的 SQL Server。这意味着如果我在家中处理这个程序,我将无法做任何事情,因为它无法连接到它。

我发现服务器使用 windows auth 来验证连接到 SQL Server 的用户。据我所知,SQL Server 上的 Windows 身份验证获取了安全凭据。所以我想知道有没有一种方法可以使用 Java 获取凭据,然后使用 JDBC 将其传递给 SQL Server 以登录数据库?或者这真的不现实吗?如果是这样,有什么办法可以解决这个问题?

谢谢

【问题讨论】:

不,你不能那样做。您需要改用“SQL Server 身份验证”(这需要重新配置您的 SQL Server 实例) 【参考方案1】:

当您安装 MS SQL Server 时,系统会询问您所需的身份验证类型。

我个人无法想到纯“Windows 身份验证”有意义的场景。我总是选择“混合模式”,因为纯 Windows 身份验证可能会出错。 (服务器管理员被解雇,公司与另一个 AD 域合并,自发的 SID 损坏等......)

也就是说,您需要Change Authentication Mode to Mixed Mode。

【讨论】:

以上是关于使用 JDBC 将自己制作的 Windows 凭据传递给 SQL Server的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jdbc 将对象的字段保存到数据库中

Windows 7 pro 上的凭据提供程序 64 位

怎么显示windows凭据网络密码?

使用护照注册后将代表用户的对象添加到数组中

Spring Cloud Config - Vault 和 JDBC 后端在 Vault 中具有 JDBC 凭据

Oracle JDBC:用户名/密码无效 (ora-01017)