Tôi đang viết một ứng dụng máy khách Java để truy xuất dữ liệu từ một máy chủ MySQL từ xa. Vì mục đích phát triển, tôi đã kết nối trực tiếp với máy chủ MySQL (tức là với DriverManager.getConnection (databaseURL), vv), nhưng đã có ý định chuyển sang sử dụng dịch vụ web (một khi đã được xây dựng). Câu hỏi của tôi là liệu tôi không thể tiếp tục với kết nối trực tiếp?Có hợp lý khi kết nối máy khách với máy tính để bàn trực tiếp với MySQL không?
Dịch vụ web sẽ cung cấp cho tôi mã nào khác để viết? Tôi sẽ phải thực hiện xác thực của riêng mình; có gì sai khi chỉ dựa vào MySQL?
(Tôi đang đặt câu hỏi này thay vì tiêu cực, vì tôi có ý tưởng rằng mô hình này hơi cau mày vào những ngày này; đó thực sự là lý do tôi hỏi nó, vì dường như tôi hoàn toàn ổn điều cần làm.)
Cảm ơn bạn vì bất kỳ thông tin chi tiết nào bạn có thể cung cấp cho tôi!
Có, đây có vẻ là một vấn đề lớn, nhưng tôi thấy rằng tôi có thể hạn chế quyền truy cập của khách hàng vào các thủ tục được lưu trữ thích hợp và tất cả sẽ tốt. Có lẽ có nhiều hơn để nó mặc dù. –
Tại sao không nhúng chuỗi kết nối với tên người dùng/mật khẩu bên trong ứng dụng? Bằng cách đó, ứng dụng có toàn quyền truy cập vào cơ sở dữ liệu, nhưng người dùng thực tế vẫn không biết thông tin xác thực đăng nhập. Rõ ràng, bạn kiểm soát mã ứng dụng, vậy đâu là mối quan tâm? – JoeCool
@JoeCool cho kẻ tấn công, việc tìm kiếm thông tin đăng nhập cũng đơn giản như chạy 'chuỗi' trên bình chưa được đóng gói. Bạn có thể đề xuất các giải pháp cho điều đó, nhưng tất cả chúng đều có cùng một vấn đề cơ bản mà DRM có, cụ thể là tại một số thời điểm bạn cần đăng nhập người dùng trong văn bản rõ ràng trên hệ thống người dùng. Người dùng điều khiển hệ thống đó để họ có thể truy cập vào hệ thống đó. Đây không phải là vấn đề lớn nếu ứng dụng của bạn là một thứ trong nhà được sử dụng bởi 3 nhân viên trong suốt cuộc đời của nó, vì vậy khi bạn phân phối nó cho nhiều người, một số người có thể không thích bạn lắm. – wds