Не удалось подключиться к SQL Server 2016 SP1 с помощью чего-либо, кроме SSMS

Я занимаюсь этим последние 11 часов, и я до сих пор не могу понять это. Это началось как проблема подключения JAVA, но на этом этапе я смог подтвердить, что единственным инструментом, способным подключиться к удаленному экземпляру SQL Server, является SQL Server Management Studio. JDBC терпит неудачу, Windows 7 ODBC терпит неудачу, клиенты DataStage из Linux терпят неудачу, а также соединения данных Visual Studio 2017. Вот пример кода .Net (C #), который работает для других серверов, кроме тех, с которыми у меня возникают проблемы:

    [TestCase(true)]
    [TestCase(false)]
    public void TestMethod(bool encrypt)
    {
        var sscsb = new SqlConnectionStringBuilder {
            DataSource = $"{server}\{instance},{port}",
            NetworkLibrary = "dbmssocn",
            PacketSize = 4096,
            InitialCatalog = database,
            IntegratedSecurity = false,                
            UserID = user,
            Password = password,
            Encrypt = encrypt,
            TrustServerCertificate = true,                
        };
        try
        {
            using (var conn = new SqlConnection(sscsb.ConnectionString))
            {
                conn.Open();
            }
            Assert.Pass("Connected");
        }
        catch (Exception e)
        {
            Assert.Fail(e.Message);
        }
    }

Ошибка при попытке подключения из этого тестового класса:

Message: Login failed for user 'etldstg'.

В JAVA, в зависимости от комбинации настроек TLS (помните, что логин всегда зашифрован самозаверяющим сертификатом), я когда-нибудь получу это:

The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "SQL Server did not return a response. The connection has been closed. ClientConnectionId:37dc2f52-c952-4f50-8fc9-62c3bdd84041".

Я знаю, что JAVA не поддерживает шифрование DHE

Ignoring unsupported cipher suite: TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 Ignoring unsupported cipher suite: TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 Ignoring unsupported cipher suite: TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 Ignoring unsupported cipher suite: TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 Ignoring unsupported cipher suite: TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 Ignoring unsupported cipher suite: TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 Ignoring unsupported cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 Ignoring unsupported cipher suite: TLS_RSA_WITH_AES_256_CBC_SHA256 Ignoring unsupported cipher suite: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 Ignoring unsupported cipher suite: TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 Ignoring unsupported cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 Ignoring unsupported cipher suite: TLS_RSA_WITH_AES_128_CBC_SHA256 Ignoring unsupported cipher suite: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 Ignoring unsupported cipher suite: TLS_RSA_WITH_AES_128_GCM_SHA256 Ignoring unsupported cipher suite: TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 Ignoring unsupported cipher suite: TLS_RSA_WITH_AES_256_GCM_SHA384 Ignoring unsupported cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 Ignoring unsupported cipher suite: TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 Ignoring unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 Ignoring unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 Ignoring unsupported cipher suite: TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 Ignoring unsupported cipher suite: TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 Ignoring unsupported cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 Ignoring unsupported cipher suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 Ignoring unsupported cipher suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 Ignoring unsupported cipher suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 Ignoring unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 Ignoring unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

На этом этапе я не могу попросить администратора сервера следовать рекомендациям Microsoft и отключить DHE путем взлома реестра

Итак, я застрял. Кто-нибудь видел что-то подобное? Как вы это разрешили?

java,c#,sql-server,jdbc,odbc,

0

Ответов: 1


0

Сначала проверьте, открыт ли маршрут в вашей сети между серверами.

Если это еще одна проблема, вы можете попросить своего администратора узнать, активен ли протокол TCP / IP в экземпляре SQL Server. Вы можете сделать это, открыв SQL Server Configuration Manager на сервере и проверив сетевые протоколы.

Java, C #, SQL-сервер, JDBC, ODBC,
Похожие вопросы