1. 程式人生 > >在 Windows Server Container 中運行 Azure Storage Emulator(二):使用自定義的 SQL Server Instance

在 Windows Server Container 中運行 Azure Storage Emulator(二):使用自定義的 SQL Server Instance

manage span contain target ros 結果 images 兩種方法 ini

  上一章,我們解決了 Azure Storage Emulator 自定義監聽地址的問題,這遠遠不夠,因為在我們 DEV/QA 環境有各自的 SQL Server Instance,我們需要將 ASE 的數據庫建到各自的 Instance 中。

  先來看下 AzureStorageEmulator.exe help init 的結果:

技術分享

  呃,No way to set SQL Server connection string。這麽看來,使用 Windows 身份驗證是必須的了。不同服務器使用 Windows 身份驗證有幾種方法,一是使用 NTLM 身份驗證,這個比較簡單,兩臺服務器都設置一個相同的帳戶,密碼也一樣,然後在 SQL Server 中給這個帳戶一個 login 就行了。然後 ASE 要以這個帳戶的身份運行,init 時指定 instance 就滿足了所有條件。

  有 AD 的話就舒服了,在 AD 上添加一個用戶,然後 SQL Server 給這個帳戶一個 login,ASE 以這個帳戶的身份運行,就一切 OK 了。

  但這兩種方法都不是我想要的,因為……我要將 ASE 運行在容器中。而在容器中運行 ASE 且使用 Windows 身份驗證,只有一種方法,那就是 gMSA。那麽,要上 PS 大法了(啥?PhotoShop?no no no,PowerShell):

New-ADServiceAccount -Name AseSvc -DNSHostName ase.contoso.com -PrincipalsAllowedToRetrieveManagedPassword [ASE-HOST$] -KerberosEncryptionType RC4, AES128, AES256

  在運行 ASE 的服務器上(ASE-HOST):

Install-WindowsFeature RSAT-AD-PowerShell
Install-ADServiceAccount AseSvc
Test-AdServiceAccount AseSvc

  輸出“True”表示 gMSA 已經 ready 了(有關創建 gMSA 的詳細信息,見我另一篇博文《在 Windows 容器中使用 gMSA》)。

  下面,在 SQL Server 中添加 login:

技術分享

  OK,萬事俱備,只欠東風,下一章,我們就要把 ASE 運行在容器中了。

在 Windows Server Container 中運行 Azure Storage Emulator(二):使用自定義的 SQL Server Instance