Azure SQL VPN 連接
Error 40532 坑,趕緊紀錄一下!
新增或更新憑證的語法
2022/4/27 坑
開發時會遇到連線失敗,主體名稱不正確之類的訊息
結論:到 host 檔新增 DNS 或於開發時信任伺服器端憑證
TrustServerCertificate=true
說明:
應該是因為原本憑證是發給 database.windows.net
但是我們這邊用的是用 IP 導致憑證驗證失敗
所以在地端開發時直接信任伺服器端憑證
發佈到 Azure App Service 時
如果是直接連 TestDbServerName.database.windows.net
就不需要設定 TrustServerCertificate=true
2021/8/31 坑
VPN 連線後 SQL Server 發生「無法產生 SSPI 內容」錯誤 | The Will Will Web (miniasp.com)
結論:到 host 檔新增 DNS 或於 SQL 登入帳號後面要加上 @伺服器名稱
例如原本 SQL Server = TestDbServerName.database.windows.net
登入帳號為 Admin
用 VPN 在 SSMS 的帳號欄位要輸入 Admin@TestDbServerName
否則會得到錯誤: 40532
參照: 在使用者名中明確提供伺服器名稱,用於Azure SQL DB、MySQL 和后格雷斯QL - 微軟技術社區 (microsoft.com)
Step 1:建立 Azure VPN Getway
這邊見的時候可能先看一下目前自己的內網 IP 網段是甚麼
在建立 Vnet 的時候網段要錯開
比如公司內網 10.0.0.x
手機分享網路 192.168.0.x
那建立 Vnet 的時候就不要用 10.0.x.x or 192.168.x.x
參照: 使用 P2S VPN 連線至 VNet & 憑證驗證:入口網站 - Azure VPN Gateway | Microsoft Docs
Step 2:建立 SQL 私人端點
建完就有個內網 IP 稍微記一下等等連到資料庫的時候要用
參照: Tutorial: Connect to an Azure SQL server using an Azure Private Endpoint - Portal | Microsoft Docs
Step 3:安裝 VPN 並連線
就把 Step 1 的私人憑證匯入到每個要連線的電腦
然後把從 Azure 下載回來的 CA 可能也要匯入到信任的根憑證
再安裝 Azure 下載的 x64 VPN Clinet
就會在電腦右下網路裡面看到該 VPN
按連線理論上就可以成功了
Step 4:測試連線
設定完並連結 VPN 後可以在 PowerShell (電源殼?) 輸入以下命令測試連線
Test-NetConnection 10.0.0.4 -Port 1433
P.S. 這邊假定 SQL 私人端點分配的內網 IP 為 10.0.0.4 請依照實際分配位置輸入
注意:這邊一定要指定 1433 Port, ping 應該是關掉不會過的, 回想起來我因此卡了很久
Step 5:使用 SSMS 登入
輸入 SQL 私人端點分配的內網 IP 當作 SQL Server Host
然後將帳號後面加上 @SQL伺服器名稱 (參照開頭的結論部分)
密碼就一樣
理論上就可以不用開 WAN IP 白名單
也可以連到 Azure SQL
Note:
Win 10 如果要用 IKEv2 連線可能要改 登錄檔 (預設 SSTP 不用)
WIn 7 之類的要連 VPN 要啟用 TLS 1.2 (也要改登錄檔)
有人登入遇到錯誤 說甚麼 主體 xxx SSL xxx 還不確定甚麼問題
VPN 協議有很多種,目前手機分享網路貌似只有 SSTP 可以通
承上,MIS封鎖各種 VPN,但以我目前 SSTP 是可以用的
如果連線失敗,可以確認一下 MIS 是否把 1433 封死了

PS5
Azure SQL
回首頁
本文章從點部落遷移至 Writerside