發現在 Linux 上也有 SSMS 的替代品可跑,而且是 Microsoft 自家出品: Azure Data Studio.
裝起來一試果然不能用… 要解決兩個問題:
TLS 1.0
公司的 SQL Server 老舊且未更新,先前用 Java 連線就會碰到 TLS v1.0 已經不支援的問題,要改 jdk.tls.disabledAlgorithms
,用 Ubuntu OpenJDK 的話就是在類似/etc/java-##-openjdk/security/java.security
這樣的地方:
1 | jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \ |
把裡面的 TLSv1
, TLSv1.1
拿掉就行了。那這次 Azure Data Studio 用的是系統給的 TLS/SSL,例如 openssl
, 這就要去改 openssl.cnf
. 但為了這問題去改整個系統設定不太好,折衷一下就採取這邊建議的方式,新增一個 openssl-tlsv1.cnf, 然後用
1 | env OPENSSL_CONF=/etc/ssl/openssl-tlsv1.cnf azuredatastudio |
執行,就解決了。
Trust Server Certificate
像這種亂裝的 SQL Server 當然不可能真的把憑證搞好,所以還要把 Advanced Properties 裡面 Trust server certificate 勾起來,無條件信任,才能順利連上。