疑難排解 SharePoint 設定錯誤:無法連線至位於 server_name 的主資料庫
疑難排解 SharePoint 設定錯誤:無法連線至位於 server_name 的主資料庫
大家好,我是 SharePoint Server IT Pro 團隊的新作者,Reagan Templin。最近,我第一次嘗試讓我的測試環境設定為 SharePoint Server 2010。我將我的 SQL Server 電腦與 SharePoint Server 電腦區隔開來,並且當我 執行 [SharePoint 產品設定精靈] 時,在 [指定設定資料庫設定] 頁面上遇到下列封鎖錯誤:
「無法連線至位於 <server_name> 中 SQL Server 的資料庫 master。資料庫可能不存在,或者目前的使用者沒有連線至該資料庫的權限。」
這個錯誤通常表示,您用來設定 SharePoint 的帳戶沒有連線到 SQL Server 電腦及完成設定的適當權限。我回到 SQL Server 電腦,確認我的 SharePoint 管理員帳戶具有指派的正確伺服器角色,而且主資料庫已存在。另外,我也確認我使用 SharePoint 管理員帳戶登入 SharePoint Server 電腦,所以設定應該可以繼續進行。但是,設定仍然無法繼續,因此,我花了點時間疑難排解別處是否可能出錯。 最後發現,原來是防火牆問題封鎖了 SQL Server Database Engine 執行個體對連接埠的存取。
下列是我曾執行來設定環境的作業,以及為解決錯誤所執行方法的摘要。希望這些能幫助其他遇到相同錯誤的使用者。
建立虛擬機器
為了進行這個演練,我使用 Hyper-V 來裝載虛擬機器,並建立了兩個新虛擬機器,一個做為 SQL Server 電腦,另一個則為 SharePoint Server 電腦,接著,為這兩部電腦安裝 Windows Server 2008 R2 Enterprise 版本 (64 位元),並且在啟動 Windows、安裝更新後將它們加入我的測試網域 contoso。然後,在進行任何其他安裝或設定之前,建立 Hyper-V 快照來保留影像。
設定帳戶和權限
我依照<初始部署所需的系統管理和服務帳戶 (SharePoint Server 2010)>(https://technet.microsoft.com/zh-tw/library/ee662513.aspx) 和<SharePoint 2010 的最低權限服務帳戶>(https://www.sharepointproconnections.com/article/sharepoint/Least-Privilege-Service-Accounts-for-SharePoint-2010.aspx (可能為英文網頁)) 中的資訊,在網域中設定正確帳戶並授與那些帳戶建議的存取權,以便在環境中執行最低權限的系統管理作業。
我根據那些資訊,在網域控制站電腦的 Active Directory 網域服務中設定下列網域帳戶:
- contoso\reagant:我的個人網域帳戶。這是我用來登入 SQL Server 電腦以便進行安裝和設定的帳戶。這個帳戶是 SQL Server 電腦上本機系統管理員群組的成員,也是 contoso 網域的一部分。
- contoso\SQLsvc:我的 SQL Server 服務帳戶。這是我在 SQL Server 安裝期間為 MSSQLSERVER 服務和 SQL Server Agent 服務指定的帳戶。
- contoso\SPadmin:我的 SharePoint 管理員帳戶。這是我用來登入 SharePoint Server 電腦以便安裝和設定 SharePoint Server 2010 的帳戶。這個帳戶是 SharePoint Server 電腦上本機系統管理員群組的成員。在 SQL Server 中,它還是具有 dbcreator 和 securityadmin 伺服器角色的 SQL Server 登入帳戶,可啟用 [SharePoint 產品設定精靈] 來執行並設定 SharePoint。
- contoso\SPfarm:我的 SharePoint 伺服器陣列帳戶。這是我在 [SharePoint 產品設定精靈] 的 [指定設定資料庫設定] 頁面上,指定為 SharePoint 伺服器陣列管理員的帳戶 (也稱為資料庫存取帳戶)。
安裝並設定 SQL Server 2008 R2
我以重新代理的身分登入 SQL Server 電腦並安裝 SQL Server 2008 R2。接著,為 MSSQLSERVER 和 SQL Server Agent 服務提供 SQLsvc 網域帳戶認證,並將我的重新代理帳戶新增做為 SQL Server Database Engine 的系統管理員。然後,完成 SQL Server 安裝程式程序。
依照 SQL Server 安裝程式的指示,我開啟 SQL Server Management Studio 並連線到 SQL Server Database Engine 的預設執行個體,接著,為 SPadmin 網域帳戶建立 SQL Server 登入帳戶,並且授與它存取 dbcreator 和 securityadmin 伺服器角色的權限。然後,關閉 Management Studio。
安裝 SharePoint Server 2010
我以 SPadmin 帳戶身分登入 SharePoint Server 電腦,安裝 SharePoint Server 2010 必要條件並執行 SharePoint Server 2010 安裝程式。
執行 SharePoint 產品設定精靈
依照 SharePoint Server 2010 安裝程式的指示,我執行 [SharePoint 產品設定精靈] 並選取建立新伺服器陣列的選項。在 [指定設定資料庫設定] 頁面上,我指定了 SQL Server 電腦名稱、設定資料庫的名稱以及 SPfarm 網域帳戶認證。不過,當我按 [下一步] 時,收到錯誤:無法連線至位於 <server_name> 中 SQL Server 的資料庫 master。資料庫可能不存在,或者目前的使用者沒有連線至該資料庫的權限。
返回後,我確認我的 SQL Server 安裝成功,並且帳戶和權限都已正確設定。在試過幾次卻都出現錯誤之後,我想起使用其他產品時曾遇過的問題,我記得那時 SQL Server 電腦上的 Windows 防火牆封鎖了 SQL Server Database Engine 執行個體執行所在連接埠的流量。根據預設,SQL Server 是在連接埠 1433 上執行,但在我的簡易測試環境中,我讓它在預設連接埠上執行。在 SQL Server 電腦上,我以 [進階服務] 開啟 [Windows 防火牆] 並新增輸入規則來允許連接埠 1433 上的流量。如果您不要使用預設連接埠,請為環境中使用的連接埠建立輸入規則。
當我回去執行 [SharePoint 產品設定精靈] 時,便不再遇到錯誤訊息,並且設定能夠繼續進行。如需有關如何為 SQL Server 設定 Windows 防火牆的詳細資訊,請參閱<HOW TO:為 Database Engine 存取設定 Windows 防火牆>(https://technet.microsoft.com/zh-tw/library/ms175043.aspx)。
這是翻譯後的部落格文章。英文原文請參閱 Troubleshooting SharePoint configuration error: Cannot connect to database master at server_name