java.sql.SQLException : Single-Sign-On is only supported on Windows. 请指定用户名

标签 java android sql-server single-sign-on jtds

我正在使用jTDS驱动程序以便从我的 Android 应用程序连接到 SQL Server 数据库,该应用程序使用 Windows 身份验证。正如 FAQs 中所建议的那样,我读了READMESSO文件,如上所述,我将 native SPPI 库 (ntlmauth.dll) 放置在系统路径中(由 PATH 系统变量定义)

enter image description here

但是,当我尝试使用以下代码连接到数据库时:

String driver = "net.sourceforge.jtds.jdbc.Driver";
Class.forName(driver).newInstance();
String connString = "jdbc:jtds:sqlserver://192.168.56.1/MyMovies;";
Conncection conn = DriverManager.getConnection(connString);

我收到以下异常:

java.sql.SQLException: Single-Sign-On is only supported on Windows. Please specify a user name.

最佳答案

由于您是从 Android 设备连接,因此您将无法获取驱动程序连接到 SQL Server 所需的 SSO 凭据。仅当尝试连接数据库的 java 程序位于 Windows 计算机上时,您提到的设置才有效,错误消息中清楚地提到了这一点。

除非您的应用程序具有基于连接到数据库的 SSO 用户的授权,否则您应该有一个基于 SQL Server 用户的身份验证机制来连接到服务器,并且所有授权过程都应与该用户绑定(bind)。

关于java.sql.SQLException : Single-Sign-On is only supported on Windows. 请指定用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12375437/

相关文章:

java - ScrolledComposite JFace 对话框中没有滚动条

java - 致命异常 : IntentService[RegIntentService] after upgrading to com. android.support :support-v4:25. 0.1

Java/安卓。 int = 文本?

sql-server - 在 SQL Server 2008 R2 Express 上设置发布

sql - 为什么 SQL Server 会误解此 ISO 8601 格式日期?

sql - 在多次执行SQL任务SSIS中使用可变参数

java - 如何分配线程来处理 Servlet 请求?

java - 具有私有(private)构造函数的通用对象

java - 具体的Java泛型数组创建

java - 在自定义可扩展列表适配器中扩展 View 时遇到问题