Tôi phải hỗ trợ nhiều loại cơ sở dữ liệu cho ứng dụng web hỗ trợ người thuê của mình. Trong số những người khác, tôi đã hỗ trợ thành công SQL Server của Microsoft, bằng cách sử dụng lớp net.sourceforge.jtds.jdbc.Driver với một chuỗi kết nối như "jdbc: jtds: sqlserver: //192.168.1.189: 1433/ApplicationName". Điều này làm việc, nhưng nó đòi hỏi người dùng xác định rõ ràng một người dùng trong cá thể SQL Server và cho phép xác thực SQL Server.Xác thực đối tượng SQL Server là Người dùng Windows thông qua JDBC
Bây giờ, chắc chắn, các yêu cầu đã thay đổi và chúng tôi phải hỗ trợ kết nối với SQL Server thông qua Xác thực Windows. Rõ ràng điều này đòi hỏi một số thay đổi đối với chuỗi kết nối, vì máy chủ cơ sở dữ liệu phải bằng cách nào đó có thể phân biệt liệu thông tin xác thực được chuyển vào kết nối cơ sở dữ liệu có dành cho người dùng được xác định trong cài đặt SQL Server hay trong hệ điều hành Windows hay không. Nhưng nó là gì?
Làm theo lời khuyên từ internet, nếu tiến triển đến khi mở rộng chuỗi kết nối với ;useNTLMv2=true;domain=WORKGROUP
. Đó dường như để làm cho máy chủ cơ sở dữ liệu nhận thức được rằng tôi muốn để xác thực như một người dùng Windows, nhưng thực tế log-in không thành công với
The login is from an untrusted domain and cannot be used with Windows authentication. (code 18452, state 28000)
Bây giờ im thử nghiệm của tôi thiết lập, cả hai ứng dụng J2EE và Ví dụ máy chủ SQL trên thực tế là trên cùng một máy (mặc dù trong sản xuất chúng có thể không), và máy tính này vẫn chưa đủ tin cậy để đăng nhập vào chính nó? Rõ ràng là tôi đang thiếu một phần lớn của câu đố ở đây. Người ta phải làm gì để thuyết phục một cá thể SQL Server mà người dùng đã bắt đầu nó có thể thực sự đăng nhập vào nó thông qua JDBC?
Sửa
Kể từ khi chúng tôi đã chìm quá nhiều nỗ lực không thành công cố gắng để tích hợp ứng dụng web của chúng tôi với một chồng đầy đủ Microsoft cơ sở hạ tầng (SQL Server, Active Directory Domain Name Service ...), tôi phải hạn chế câu hỏi này:
có ai biết một cách để truy cập vào một SQL server cài đặt với một tài khoản người dùng định nghĩa là một "người dùng Windows" qua JDBC dạng một ứng dụng J2EE, mà không cần phải sử dụng Active Directory, một máy Windows chạy ứng dụng web và một tệp DLL độc quyền? Tiền thưởng là cho bất kỳ giải pháp của vấn đề phụ đó. Toàn bộ vấn đề rõ ràng là quá rộng để được trả lời trong một bài đăng trên diễn đàn.
là máy tính này một thành viên của một miền Active Directory Windows? Tôi không biết nhiều về trình điều khiển jTDS nhưng bạn đã cài đặt các dấu hiệu duy nhất trên DLL? Một tùy chọn khác là trình điều khiển Microsoft JDBC, hỗ trợ Windows auth mà không có SSO. –
Không, tất cả những gì chúng tôi có ở đây là một vài hộp phát triển Windows độc lập. Một đồng nghiệp hiện đang xem xét những gì chúng tôi sẽ phải làm để thiết lập môi trường Active Directory cho chính mình. Ngoài ra, tôi có hiểu bạn một cách chính xác rằng với trình điều khiển sqljdbc4.jar tôi có thể lấy đi mà không cần chạy bộ kiểm soát miền cục bộ? Nếu vậy, tôi thực sự muốn nhận được kết nối bằng cách chỉ thích ứng với URL kết nối và các tham số thay thế. –
Lưu ý rằng việc chạy SQL Server trên bộ kiểm soát miền không được hỗ trợ. Thông thường, một sử dụng xác thực Windows chỉ với AD đã có sẵn. Nếu bạn không có điều đó, tại sao không chỉ sử dụng SQL auth? Tại sao một yêu cầu yêu cầu bạn sử dụng xác thực Windows mà không có cơ sở hạ tầng hỗ trợ? –