在 Windows Server 上运行的 Java 应用程序可以通过 Windows 身份验证连接到 SQL Server

2024-03-28

在提出问题之前,让我先介绍一些背景知识。我在一家主要运行 Windows 的商店。我们有几个批处理应用程序在 Windows 服务器上运行(主要是 2003 年)。大多数批处理应用程序都是用 C# 和 C++ 编写的;然而,我们有一些用 Java 编写的应用程序。

批处理 Java 应用程序使用 JDBC 连接到 SQL Server 2005 数据库。请注意,我们不使用应用程序服务器。

目前,我们将数据库连接信息(数据库、用户名和密码)存储在 Windows 注册表中。

不幸的是,这些非常不友好的审计员(幽默的糟糕尝试)对我们将数据库连接信息存储在 Windows 注册表中的决定不满意。 我们现在正在更新批处理应用程序以使用 Windows 身份验证连接到 SQL Server。

对 C# 和 C++ 应用程序使用 Windows 身份验证不是问题;然而,我一直坚持 Java 应用程序的发展方向。

谁能建议是否可以使用 Windows 身份验证从 Windows 服务器上运行的 Java 批处理应用程序连接到 SQL Server 2005 数据库?同样,我们没有使用应用程序服务器。

如果可能的话,您推荐的方法是什么?

我有一个简单地加密密码的策略,这将使审核员满意,但我更希望所有批处理应用程序通过 Windows 身份验证连接到 SQL Server。


您可以使用 Windows 身份验证从 Java 程序连接到 SQL Server,如下所示:

  1. 为将用于运行程序的应用程序创建一个 Windows 帐户。该帐户的凭据将用于连接到服务器。
  2. 从以下位置获取适用于 SQL Server 的 Microsoft JDBC 驱动程序.
  3. 配置 JDBC URL 如下:

    jdbc:sqlserver://<hostname>;databaseName=<DBName>;integratedSecurity=true
    
  4. 配置从命令行运行 Java 程序的启动器以包含以下 JVM 参数:

    -Djava.library.path="<jdbc driver dll location>"
    

    其中位置是之前下载的 JDBC 驱动程序的安装或解压目录。它是C:\Program Files\sqljdbc_4.0.2206.100_enu\sqljdbc_4.0\enu\auth\x64就我而言。正如 Luke Woodward 在评论中提到的,应该根据用于运行这些程序的 JVM 选择 dll。

通过上述配置,与 SQL Server 建立的连接将使用运行 java 程序/进程的域用户的 Windows 身份验证凭据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Windows Server 上运行的 Java 应用程序可以通过 Windows 身份验证连接到 SQL Server 的相关文章

  • 黄瓜与 Micronaut

    我正在尝试将 Cucumber 与 Micronaut 一起使用 但当我尝试将其与 Cucumber 一起使用时 MicronautTest 注释根本不起作用 未注入 theApple 请参阅下面的代码 如果我在没有黄瓜的情况下运行它就可以
  • 从继承的受保护 Java 字段创建公共访问器

    我怎样才能完成以下工作 class Foo extends javax swing undo UndoManager increase visibility works for method override def editToBeUnd
  • Java 中的本机方法

    我花了一些时间学习什么是 Java Native 方法以及它们是在平台相关代码 主要是 C 中实现的 但是我在哪里可以找到这些 Java 的本机实现呢 例如 Thread 类的 sleep long millis 方法是本机的 但它的实现代
  • 文件保存在文件系统中 VS 保存在数据库中

    我正在设计一个 servlet 或 Struts2 中的操作 用于文件 图像 文档等 下载 但我想知道哪种更好的方法可以将文件保留在文件系统和数据库中 只需保留文件的路径或将文件保留在数据库中 如 BLOB 我知道当我查询数据库时 哪里的
  • 在 JSP 中对表单操作使用相对路径

    如何在表单操作中使用相对路径
  • 可以混合使用 JVM 语言吗?即:Groovy 和 Clojure

    我知道你可以轻松地混合groovy java clojure java 无论什么JvmLang java 这是否也意味着我也可以让 clojure 和 groovy 代码进行交互 如果我使用 Grails 或 jRoR 我也可以在该环境中使
  • org.hibernate.MappingException:没有 JDBC 类型的方言映射:1111

    我使用的是 postgres v8 3 它的列类型为 XML DDL 看起来像这样 CREATE TABLE contact ID INTEGER NOT NULL NAME VARCHAR NOT NULL Details XML 在映射
  • Java 泛型和数字类型

    我想创建一个通用方法来有效地执行此操作 class MyClass static
  • 如何连接hibernate和DB2

    我正在运行一个使用 struts 和 hibernate 的应用程序 我目前正在使用 Derby 数据库 现在我必须转向 DB2 数据库 请告诉我 我必须做什么配置 休眠配置文件 我必须设置任何类路径吗 多变的 我知道 DB2 有两个 ja
  • 比较和删除列表和数组java中不存在的元素

    我有一个String数组和一List
  • Java 中意外的负数

    import java util public class Prac9FibonacciNumbers public static void main String args int x new int 100 x 0 1 x 1 1 fo
  • 如何减少 JSF 中的 javax.faces.ViewState

    减少 JSF 中视图状态隐藏字段大小的最佳方法是什么 我注意到我的视图状态约为 40k 这会在每次请求和响应时下降到客户端并返回到服务器 特别是到达服务器时 这对用户来说会显着减慢 我的环境 JSF 1 2 MyFaces Tomcat T
  • 获取证书链

    我正在 Java 中使用 X509 证书 给定一个证书 是否可以在签名层次结构中找到所有其他证书 直到找到根证书 我有一个证书文件 带有 cer扩展名 我想提取父签名证书 我想继续查找该证书的父证书 直到获得最终的自签名根证书 我已经检查了
  • 在openjdk:7-jre-alpine docker上如何安装python 3.6

    直到大约一周前 我才在 java 图像上成功使用 python 3 6 脚本 如下所示 FROM openjdk 7 jre alpine RUN apk update apk upgrade apk add no cache bash a
  • 线程睡眠阻止我的 Swing 应用程序执行

    我的应用程序发生的事情是有道理的 但我不知道如何修复它 以下是我的应用程序功能的简要描述 计时器窗口应显示在屏幕右下角并显示实时时间 一小时后 它应该执行一些操作 我还没有决定该操作 我面临的问题是定时器 java当我刷新实时计时器的秒数时
  • Spring Boot如何加入自定义查询

    我需要创建一个端点 该端点按州返回人口普查数据以及城市列表 我目前使用两个端点来获取此数据 目前回应 自定义查询一 censusByState id 1 code 11 name Rond nia statePopulation 18152
  • 防止从 SSMS 导出的文件中受影响的行条目

    我怎样才能防止这样的条目 123456 rows affected 在文件末尾导出的文本文件中 似乎没有找到选项 谢谢 你可以使用 SET NOCOUNT ON 不设置计数 https learn microsoft com en us s
  • 如何确保超类的子类方法的线程安全?

    我参加了一次面试 并被要求为以下要求设计一个课程 假设我有一个 A 类 它可以有任意数量的子类 即子类 类 A 有一个名为 doSomething 的方法 该方法是同步的 要求是 A 的所有子类都是强制性的重写 doSomething me
  • 如果所有类不在同一个包中,Spring @autowired 不起作用

    我有四个包裹 com spring org Files HomeController java com spring org dao Files SubscriberDao java SubscriberDaoImpl java com s
  • 按字母顺序对对象的 ArrayList 进行排序

    我必须创建一个方法来排序数组列表根据电子邮件按字母顺序排列对象 然后打印排序后的数组 我在排序时遇到麻烦的部分 我已经研究过并尝试使用Collections sort vehiclearray 但这对我不起作用 我是因为我需要一个叫做比较器

随机推荐

  • 如何使用 jquery 判断 gif 是否已完全动画化

    如果我有一个仅运行单个动画的 IE 动画 gif 它不循环 有没有办法使用 jquery 或任何与此相关的东西来告诉动画何时完成 我不想告诉文件是否已完全加载 但动画已经运行完毕 我认为没有办法从 JavaScript 中检测到它 我会选择
  • 如何解压 Pandas 中的一系列元组?

    有时 在使用 Pandas 时 我最终会得到一系列元组 列表 例如 当执行分组并传递具有多个返回值的函数时 这种情况很常见 import numpy as np from scipy import stats df pd DataFrame
  • ConstraintLayout 无法转换为 android.widget.TextView

    当我尝试启动活动时 不断收到运行时错误 发生错误的行 private OnItemClickListener mDeviceClickListener new OnItemClickListener public void onItemCl
  • 在 Java 应用程序中查找线程创建的来源

    我正在开发一个存在线程问题的 Java 应用程序 在使用带有 Netbeans 分析器的应用程序一段时间时 我可以看到创建了多个线程 他们中的大多数人都以某种方式完成 5 seconds 我只能找到应用程序中使用的 SwingWorkers
  • 如何在 Maven Shade 插件中设置清单类路径?

    我正在使用阴影插件 除了能够通过设置清单的类路径之外 一切正常
  • QMainWindow::splitDockWidget 的 QDockWidget 拉伸因子?

    我正在使用 QMainWindow 在 C 中手动布局 Qt 应用程序 我想要在屏幕底部有两个并排停靠的小部件 但我希望它们具有不成比例的宽度 目前 我只能让它们具有相同的宽度 有没有办法设置拉伸因子或其他机制来获得不均匀的码头分割 以下是
  • 显示所有数据库名称

    有没有办法使用主机地址和端口显示所有数据库名称 喜欢SELECT current database 显示当前连接的数据库 我需要显示所有数据库名称 提前致谢 有一个表显示所有数据库 SELECT FROM pg database
  • 使用express.js 处理猫鼬连接的正确方法是什么?

    我有一个非常简单的 server js 设置 我正在尝试运行 var express require express wines require routes testscripts var app express app get firs
  • 关于如何制作影响 Angular 中所有组件的主题机制的指南?

    问题 我需要有关如何在 Angular 中编写机制以在我的应用程序中全局设置组件的 外观和感觉 的指导 请注意 我正在努力学习 ngrx 平台 https github com ngrx platform我认为这将是一个有趣的设计约束 然而
  • 为什么 tabindex='-1' 阻止键盘

    经过几个小时的尝试找出键盘输入在引导模式中不起作用的原因后 我终于成功地找出了问题 这是我从未想到过的事情 但通过纯粹的消除过程发现了它 有了tabindex 1 存在于 div 对于引导程序中的模态 它完全停止键盘输入 我本以为数据属性d
  • 在 Laravel 5 中安装 Guzzle

    如何将 Guzzle 安装到 Laravel 5 中 我在我的项目中使用 laravel 但我需要像 guzzle 这样的库来让我在 laravel 中轻松使用curl 任何机构可以帮忙吗 打开终端 切换到你的 laravel 项目根目录并
  • 检索 DynamoDB 上以指定文本开头的列的所有项目

    我在 DynamoDB 中有一个表 Id int hash key Name string 还有很多列 但我省略了 通常 我只是根据项目的 ID 提取和更新项目 这个模式非常适合这种情况 然而 要求之一是有一个基于名称的自动完成下拉框 我希
  • ANTLR 4 - 树模式匹配

    我试图理解 ANTLR 4 中的解析树匹配 所以为此 我有以下java代码 package sampleCodes public class fruits public static void main String args int a
  • 如何检查正则表达式是否完全匹配字符串,即字符串不包含任何额外字符?

    我有两个问题 1 我有一个正则表达式 A Z a z 0 2 d 我正在使用Python的re finditer 匹配适当的字符串 我的问题是 我只想匹配不包含额外字符的字符串 否则我想引发异常 我想捕捉以下模式 大写字母 后跟 0 1 或
  • 如何从一个 Instagram 帐户获取关注者列表?

    我正在建立一个网站 我需要的只是一个 Instagram 帐户的关注者列表 我已经完成了使用 auth 2 0 验证我的网络应用程序的步骤 我刚刚意识到 通过此身份验证 我只能访问每个访问令牌所属帐户的关注者 有没有其他方法可以从我想要的帐
  • 如何在 ubuntu 12.04 中安装 python-matplotlib?

    当我尝试时 sudo apt get install python matplotlib 我收到以下错误 Reading package lists Done Building dependency tree Reading state i
  • `yield from foo()` 和 `for x in foo(): Yield x` 之间的区别

    在Python中 大多数yield from的例子都是这样解释的 yield from foo 类似于 for x in foo yield x 另一方面 它似乎并不完全相同 并且有一些魔法 我对使用一个执行我不理解的魔法的函数感到有点不安
  • 无法使用 Require.js 调用函数

    我尝试使用 require js 为我的 node js 服务器编写一个模块 它只返回我想从 url 获取的对象 但不知何故 我无法返回用我的方法获得的值 http get 在我返回值后执行 所以我只是得到 未定义 但为什么呢 请你帮助我好
  • 如何检测 2 的补码乘法溢出?

    在我正在阅读的一本书中 以下函数用于确定 2 的补码整数乘法溢出 int tmult ok int x int y int p x y return x p x y 虽然这有效 但我如何证明它在所有情况下的正确性 当发生溢出时如何确保 p
  • 在 Windows Server 上运行的 Java 应用程序可以通过 Windows 身份验证连接到 SQL Server

    在提出问题之前 让我先介绍一些背景知识 我在一家主要运行 Windows 的商店 我们有几个批处理应用程序在 Windows 服务器上运行 主要是 2003 年 大多数批处理应用程序都是用 C 和 C 编写的 然而 我们有一些用 Java