Sql-Server

外部開發人員的 SSMS 登錄

  • February 24, 2020

這是我的第一個問題,所以請多多包涵!

我們有一家外部公司,其開發人員需要登錄到我們本地 SQL Server 2016 上的實例。

他們擁有 AD 登錄名,並且這些登錄名位於有權訪問相關實例的通訊組中。

我創建了一個自我證書,將其安裝到 SQL 伺服器並使用它加密連接,甚至將其安裝在我的筆記型電腦上(不在我們的域中)。

為了測試這種情況,我使用本地筆記型電腦登錄、VPN 連接到我們的網路,並使用“runas /netonly /user…..”執行 SSMS,使用者是與遠端開發人員具有相同權限的域使用者。

當我嘗試連接時,我得到

與伺服器成功建立連接,但在登錄過程中出現錯誤。(提供者:SSL 提供者,錯誤:0 - 證書鍊是由不受信任的機構頒發的。)

即使證書是受信任的。

如果我在 SSMS 連接選項中打勾Trust Server Certificate,我會收到“使用者登錄失敗”

我想我們需要購買證書 - 但如果有人遇到類似情況但解析度不同,請告訴我!

謝謝。

我創建了一個自我證書,將其安裝到 SQL 伺服器並使用它加密連接,甚至將其安裝在我的筆記型電腦上(不在我們的域中)。

“自我證書”是指在機器上創建的自簽名證書還是由您的域(可能是域控制器)上的私有證書頒發機構創建的證書?

我假設您的意思是您的內部 CA 頒發的證書,因此您需要確保將 CA 的公鑰安裝到筆記型電腦上的 Trusted Root Certification Authorities 儲存中,以便第三方可以驗證證書身份(您的內部 CA)。在加入域的電腦中,這是自動完成的,但由於您的筆記型電腦未加入域,它可能沒有將內部 CA 作為受信任的 CA。

此外,由於您以域使用者身份執行 SSMS,請確保 SQL Server 證書安裝在本地電腦證書儲存中,而不是目前使用者儲存中,否則 runas 使用者將看不到 SQL Server 證書。

最後,驗證證書是否滿足 Microsoft在此處定義的要求,並確保您已將 SQL Server 配置為在 SQL Server 配置管理器中強制加密。

完成此操作後,從電腦或已加入域的工作站連接到 SQL,並驗證您的連接是否已加密:

SELECT encrypt_option FROM sys.dm_exec_connections WHERE session_id = @@SPID

true如果加密或未加密,這應該返回false。一旦您確認加密在加入域的電腦上有效,請在您的非域筆記型電腦上進行測試。

感謝您的所有評論 - 尤其是 HandyD,誰得到了它!

答案是在域控制器上創建證書,我有點驚訝,不精通認證等。

我沒有意識到 DC 會被認為是權威。

引用自:https://dba.stackexchange.com/questions/251708