首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

JDBC 連接 SQL Server 整合驗證:sqljdbc_auth.dll 缺失解決方案

     編輯:程式設計綜合問答

錯誤堆疊

java.lang.UnsatisfiedLinkError: com.microsoft.sqlserver.jdbc.AuthenticationJNI.GetDNSName

根本原因

使用 integratedSecurity=true (Windows 整合驗證) 時,JDBC 驅動需載入原生庫 sqljdbc_auth.dll,但該 DLL 不在 Java Library Path 中。

解決步驟

  1. 從 Microsoft JDBC Driver 安裝目錄找到 sqljdbc_auth.dll(分 x86、x64 版本,需與 JRE 位數一致)。
  2. 將 DLL 複製到以下任一目錄:
    • %JAVA_HOME%/bin
    • %WINDIR%/System32 (64 位) 或 SysWOW64 (32 位)
    • 專案啟動參數 -Djava.library.path=你的DLL目錄
  3. 確認連線字串格式:
    jdbc:sqlserver://localhost:1433;databaseName=YourDB;integratedSecurity=true;

替代方案

若環境不允許放置原生 DLL,改用 SQL Server 帳號密碼驗證:

String url = "jdbc:sqlserver://localhost:1433;databaseName=YourDB;user=sa;password=yourPwd;";

並移除 integratedSecurity=true,即可避免原生庫依賴。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved