提问人:Cláudio Tereso 提问时间:11/22/2022 最后编辑:Cláudio Tereso 更新时间:10/5/2023 访问量:1366
将 Windows 11 连接到 SQL Server 2000
Connect windows 11 to sql server 2000
问:
我是!!!最后!!,将我的 Windows 生态系统迁移到 Windows 11 和 SQL 最新版本。 但与此同时,我已经拥有装有 Windows 11 和 sql 2000 的电脑,它们彼此不喜欢:-/
Excel 到 SQL、Excel 到 analisys Services、访问 SQL 在 Windows 10 之前都运行良好,但在 Windows 11 中失败。
我想,我遇到了与加密相关的各种错误。有什么办法解决这个问题吗?
我知道 odbc 18 将默认加密更改为 YES,但是,据我所知,已安装 odbc 11。
我已经尝试在控制面板中激活 SSL 3 和 TLS 1,但不起作用。
谢谢 克劳迪奥
答:
在今天与同样的问题作斗争后,我发现它与我上周安装在机器上的 Windows 11 Update 2022H2 有关。 Microsoft列出了一个与 TLS/SSL 握手有关的已知问题,该问题可能已在此处的可选更新中修复:https://learn.microsoft.com/en-us/windows/release-health/status-windows-11-22h2#2924msgdesc
我无法安装补丁,该补丁应该可以解决问题(https://support.microsoft.com/en-us/topic/october-25-2022-kb5018496-os-build-22621-755-preview-64040bea-1e02-4b6d-bad1-b036200c2cb3),因此暂时选择恢复到以前的版本。它立即解决了这个问题。
我希望这会有所帮助
从 Windows 11 连接到 mssql 2000 获取列表数据库 获取驱动程序版本 获取版本 MSSQL 2000
- 从此存档 https://www.akadia.com/download/documents/sqlsrv_jdbc.tar.gz 从目录 \LIB 获取驱动程序
- 文本应用程序.java
- 祝你好运
包 org.example;导入 java.sql.*;/** * Microsoft SQL Server 2000 JDBC 测试程序 来自 WINDOWS 11 * 公共类 App { public App() 抛出异常 { // 获取连接 DriverManager.registerDriver(new com.microsoft.jdbc.sqlserver.SQLServerDriver());连接连接 = DriverManager.getConnection( “jdbc:microsoft:sqlserver://IPMSSQLSERVER2000:1433”, “登录”, “通行证”);if (连接 != null) { System.out.println();System.out.println(“连接成功”);System.out.println();元数据 DatabaseMetaData meta = connection.getMetaData();System.out.println(“驱动程序信息”);System.out.println(“\t驱动程序名称: ”+ meta.getDriverName());System.out.println(“\t驱动程序版本: ”+ meta.getDriverVersion());System.out.println(“\n数据库信息”);System.out.println(“\t数据库名称: ”+ meta.getDatabaseProductName());System.out.println(“\t数据库版本: ”+ meta.getDatabaseProductVersion());选择一些数据 - 数据库名称列表 语句 select = connection.createStatement();ResultSet result = select.executeQuery(“use master\n” + “\n” + “\n” + “create table ##dbtable(dbname varchar(100),tablename varchar(1000))\n” + “\n” + “ \n” + “\n” + “exec sp_MSforeachdb 'USE [?];声明 @dbid int;设置 @dbid= db_id();如果@dbid不在 (1,2,3,4) 中插入 ##dbtable 请选择 TABLE_CATALOG dbName,TABLE_NAME from INFORMATION_SCHEMA。TABLES '\n“ + ”\n“ + ”select dbname from ##dbtable group by dbname“);while (result.next()) { System.out.println(result.getString(1));} public static void main (String args[]) 抛出异常 { App app = new App();
评论
对我来说,问题是 Win 11 22H2 删除了显然需要的密码套件。我从 https://danarman.blogspot.com/2023/02/windows-11-unable-to-connect-to-sql.html 那里得到了提示,将 22H2 之前的列表放回注册表项 value 中。HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Cryptography\Configuration\SSL\00010002
Functions
我在 https://learn.microsoft.com/en-us/windows/win32/secauthn/tls-cipher-suites-in-windows-11 找到了原始的 Windows 11 列表,将表格从网页中复制出来,并为该值构建了这个列表:Functions
TLS_AES_256_GCM_SHA384,TLS_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_3DES_EDE_CBC_SHA,TLS_RSA_WITH_NULL_SHA256,TLS_RSA_WITH_NULL_SHA
必须重新启动才能使更改生效。
评论