将 Windows 11 连接到 SQL Server 2000

Connect windows 11 to sql server 2000

提问人:Cláudio Tereso 提问时间:11/22/2022 最后编辑:Cláudio Tereso 更新时间:10/5/2023 访问量:1366

问:

我是!!!最后!!,将我的 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,但不起作用。

谢谢 克劳迪奥

加密 SQL-SERVER-2000 Windows-11

评论


答:

0赞 fm51 11/29/2022 #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),因此暂时选择恢复到以前的版本。它立即解决了这个问题。

我希望这会有所帮助

-2赞 user21527790 3/30/2023 #2

从 Windows 11 连接到 mssql 2000 获取列表数据库 获取驱动程序版本 获取版本 MSSQL 2000

  1. 从此存档 https://www.akadia.com/download/documents/sqlsrv_jdbc.tar.gz 从目录 \LIB 获取驱动程序
  2. 文本应用程序.java
  3. 祝你好运

包 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();

评论

3赞 General Grievance 4/5/2023
请格式化此答案。用最后的巨型文字墙很难看出这在说什么。
0赞 Mark Hill 10/5/2023 #3

对我来说,问题是 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\00010002Functions

我在 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

必须重新启动才能使更改生效。

评论

0赞 Joel Coehoorn 10/5/2023
This will work, but it's a bad idea. The old cipher suites were removed for important reasons. Putting them back will let them to work for more than just SQL Server, and leave the entire system vulnerable to TLS downgrade attacks. A better plan is working harder on getting off of SQL Server 2000, which is formally end of life. This means it no longer gets any updates... not even critical security patches, for which there are several open critical-rated CVEs. Or, since the needed ciphers are weak anyway, you'll be just as well off disabling encryption on the SQL Server end entirely.
1赞 Cláudio Tereso 10/6/2023
It looks like the solution to my problem, yes! But I already solved the problem in the correct way: bye bye SQL 2000 :)