Android Studio连接MSSQL数据库报错:仅Windows支持单点登录
解决Android Studio连接MSSQL时的Single-Sign-On错误
我之前也碰到过一模一样的问题——用jtds驱动在Android上连接MSSQL,结果触发了SSO(单点登录)的错误,毕竟Android是基于Linux内核的,确实不支持Windows的SSO机制。
先看你给出的连接代码:
Class.forName("net.sourceforge.jtds.jdbc.Driver"); StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); Connection conn = DriverManager.getConnection("jdbc:jtds:sqlserver://192.168.1.66;databasename=POSEIDON;username=sa;password=myPass");
这个错误的核心原因是:jtds驱动默认会尝试使用Windows的单点登录方式验证,但Android系统不支持这个功能,所以必须手动禁用SSO,强制驱动使用你提供的用户名和密码登录。
解决方法
只需要在你的JDBC连接URL末尾加上useSSO=false参数即可,修改后的连接代码如下:
Connection conn = DriverManager.getConnection("jdbc:jtds:sqlserver://192.168.1.66;databasename=POSEIDON;username=sa;password=myPass;useSSO=false");
额外注意事项
- 确保你的项目已经正确引入jtds依赖,比如在Module级别的
build.gradle中添加:implementation 'net.sourceforge.jtds:jtds:1.3.1' - 检查你的Android设备和MSSQL服务器处于同一局域网内,服务器的1433端口(SQL Server默认端口)没有被防火墙拦截
- 确认SQL Server的
sa账户已经启用,并且允许远程连接(可以在SQL Server配置管理器里开启TCP/IP协议)
内容的提问来源于stack exchange,提问作者Alex E.
相关产品推荐
相关产品推荐

