
這是瘋狂的,所以請耐心等待。這不是錯誤的密碼。
我有一個無法進行身份驗證的 SQL 服務帳戶。我是一名經驗豐富的伺服器人員,並且已經與幾個知識淵博的同事嘗試了所有基礎知識(即使他們是面向思科的)。
設想:
- Server 2008 R2 上 3 個站台上的 Active Directory,每個站台有 2 個 DC 和 1 個根 DC
- 沒有 DNS 問題,網站複製也很到位。任何帳戶變更都會在幾秒鐘內發生。
- 新建的 SQL 2016 R2 部署到網域中的 2 台 Server 2012 R2 伺服器,這些伺服器駐留在 Server 2008 R2 上的 SQL 2005 也駐留的 OU 中。
- 所有 SQL 伺服器都位於自己的 VLAN 上,DC 伺服器位於另一個 VLAN 上。雖然手上沒有防火牆問題,但我們看不到任何日誌,因為它們是第三方託管在 ESX 叢集上,並且 VLAN 之間有 Cisco 合約。
- SQL 2005 伺服器與其他 VLAN 上的 DC 進行驗證時沒有問題。
由於錯誤 1069,在新 SQL 伺服器上設定已建立的 AD SQL 服務帳戶失敗:由於登入失敗,服務未啟動。
DC 上的事件日誌(以兩者中的任何一個驗證帳戶)中的事件聲明以下內容:
Kerberos 預驗證失敗。帳戶資訊: 安全 ID:DOMAIN\sqlsvcaccount$ 帳號名稱:sqlsvcaccount$(不是真實帳號名稱) 服務資訊: 服務名稱:krbtgt/DOMAIN(當然不是我們的網域名稱) 網路資訊: 客戶端位址:::ffff:10.30 . xx(我們的IPv4 位址)用戶端連接埠:49464 其他資訊:票證選項:0x40810010 失敗代碼:0x18 預先驗證類型:2
證書資訊: 證書頒發者名稱:
證書序號:
證書指紋:
現在 0x18 通常是一個錯誤的密碼,但如上所述,帳戶很好,當它們被停用時,我重新啟用它們,重設密碼 yadda yadda。我可以在新 SQL Server 上的應用程式上執行 RunAs,效果很好。
我已設定電腦群組原則以允許服務等的服務帳戶權限,並執行 gpresult 來確認 GPO 已套用。
備份檔案和目錄 DOMAIN\sqlsvcaccount$ 作為批次作業登入 DOMAIN\sqlsvcaccount$ 作為服務登入 DOMAIN\sqlsvcaccount$
甚至有一個受限制的電腦 GPO 並將網域帳戶設定為本機管理員(這將消除對服務 GPO 的需要)。
為服務帳戶建立一個新的使用者 OU,繼承被阻止,並將服務帳戶移動到那裡,再次 gpupdate /force 並再次運行 gpresult 到 html,一切看起來都正常。
在兩次操作之間還要重新啟動幾次,這是平常的事。
我們運行了 Wireshark,它從未顯示出任何錯誤,將 SQL 伺服器移至與 DC 相同的 vlan 上,並且如前所述,DB vlan 上的 SQL 2005 伺服器沒有任何身份驗證問題。
最後,建立了一個新的電腦 OU,阻止了策略繼承,並再次嘗試了所有這些,但仍然沒有嘗試啟動 SQL Server 或代理服務。
我已經嘗試過使用 SQL 管理工具來編輯服務,甚至只是 Windows Services.msc。
我們開始關注的最後一件事是密碼,以及 Server 2012 是否嘗試使用 RC4 進行身份驗證並停用密碼。但還沒有對此做太多。
Sooooooo 有人知道會發生什麼事嗎?感謝任何反饋或我可以嘗試的其他途徑。
有答案的人會得到一箱虛擬啤酒?
答案1
託管服務帳戶(MSA)解決了這個問題。 Server 2012 AD 使用 gMSA,所以這讓我很困惑:
在 AD(具有進階選項)中,Novacroft 下有一個 OU,稱為託管服務帳戶。您可以在那裡找到使用 Powershell 建立的 MSA。
因此,請安裝服務帳戶:
- 您使用 Powershell 建立帳戶(不含 $)。
- 然後再次使用 Powershell 將帳戶關聯到伺服器。
- 在目標伺服器上,在功能和 AD 工具下安裝 Powershell 和 AD 模組。同時安裝.NET 3.5
- 在 Powershell 中的目標伺服器上,將帳戶匯入到主機上。
- 然後設定服務(現在需要在末尾添加$),並將密碼留空。
又好又簡單(如果你知道怎麼做的話)?感謝 NedPyle [MSFT] 全文這裡 我希望這可以幫助別人 :-)