Sharepoint 內幕分散網站管理

Pav Cherny

下載本文程式碼: SharePoint2008_06.exe (1160KB)

Microsoft Windows SharePoint Services (WSS) 3.0 和 Microsoft Office SharePoint Server (MOSS) 2007 支援富有彈性的系統管理與安全性模型,可讓 IT 組織集中化控制基礎架構元件 (例如網頁伺服器和資料庫伺服器),同時將裝載的

網站集合和網站控制分散化。集中化 SharePoint® 基礎結構有助於減少維護成本、統合商務邏輯、提供 SharePoint 資源的單一存取點,還可避免無謂的技術投資。

同時,分散化網站系統管理可讓您確保個別部門保有該部門中 SharePoint 網站集合、網站、文件庫、工作流程方案和其他 SharePoint 資源的自主控制。不過,將網站管理委派給個別部門有一個副作用,就是會增加 IT 部門的維護難度。比方說,如果您無法存取環境內的網站集合與網站,您要如何追蹤資源使用狀況、過期的 SharePoint 網站和集中式基礎結構中的過時內容呢?

在本文中,我將討論 WSS 3.0 的安全性模型,包括將 SharePoint 網站的系統管理控制委派給個別部門,同時保持 SharePoint 基礎架構的集中式系統管理控制的作法有什麼好處及影響。我會說明委派的網站系統管理如何運作;網站、清單和項目層級的存取權限與安全性調整如何協助維護既安全又容易使用的工作環境;以及 Web 伺服陣列系統管理員如何在不提高 SharePoint 權限的情況下存取必要的網站統計資料。

如果您要在測試實驗室中參照本文的步驟,請下載本專欄隨附的資料:technetmagazine.com。隨附資料中包括 Windows Server® 2008 架構 Web 伺服陣列的詳細部署指示,這些資料會合理反映一家具有多個部門的公司的生產環境。

SharePoint 基礎架構和網站集合管理

您可以根據單一伺服器部署或 Web 伺服陣列部署來建置 SharePoint 基礎架構。事實上,很多公司兼具上述兩種情況。單一伺服器部署適用於個別部門,它們需要的是直接快速的共同作業解決方案。效能和可靠性需求最低。當部門的 SharePoint 伺服器 (通常部署在工作站硬體上) 無法使用時,使用者比較容易諒解,因為部門本身要負起系統維護責任,而該部門內的使用者畢竟並非 IT 系統管理員。

如果是由 IT 部門維護伺服器資源,情勢便會丕變。效能和可靠性成為關鍵因素,常常需要部署高可用性解決方案以確實遵循服務等級協定 (SLA)。負載平衡的 Web 伺服陣列部署、SQL Server® 容錯移轉叢集以及儲存在存放區域網路 (SAN) 的資料庫都有助於滿足貴公司的效能與高可用性需求。請參閱 [圖 1] 提供的架構圖例。

[圖 1] SharePoint 基礎結構搭配 SQL Server 容錯移轉叢集和 SAN

[圖 1]** SharePoint 基礎結構搭配 SQL Server 容錯移轉叢集和 SAN **(按一下影像可放大檢視)

[圖 1] 所示,在集中式 SharePoint 基礎結構中,多種類型的系統管理員必須相互合作來維護資源,但是這些系統管理員會從不同的角度檢視環境。舉例而言,網站集合管理員不會看到基礎架構中的伺服器。網站集合管理員使用標準 SharePoint 使用者介面進行工作。無論您是在辦公室或資料中心的 Web 伺服陣列中將網站裝載在執行 WSS 3.0 的電腦上,這個介面都不變。

資料庫管理員和 SAN 儲存體工程師也不會看到 SharePoint 基礎架構。對這些系統管理員來說,SharePoint 資料庫與其他 SQL Server 資料庫沒什麼兩樣,而且 SQL Server 容錯移轉叢集的邏輯單位編號 (LUN) 與其他 LUN 也並無不同。Web 伺服陣列管理員是與 SharePoint 基礎架構最直接相關的系統管理員,不過此系統管理員並不能控制網站集合、資料庫或 LUN。

我們可以這麼說,部門網站集合管理員通常都不曉得基礎架構的詳細資料。畢竟,在部門中佈建網站和委派存取權限給小組及群組並不需要知道這些細節。建立新網站和開始協同合作的程序很簡單,而與 SAN 技術相關聯的高儲存成本等問題很少會浮現腦海中。

每個專案與計劃都會碰到出現新小組網站、過期網站滯留、過時內容未刪除,以及 SharePoint 環境飛快的增長,直到範圍大到系統管理員無法再漠視為止的情況。舉例來說,在 2006 年 Microsoft IT 發起簡化計劃之前,Microsoft 內部 SharePoint 環境曾經包含超過 180,000 個網站。

為網站集合管理員灌輸相關知識將有助於控制集中式 SharePoint 基礎結構中的情況。套用網站集合配額和鎖定也很有用,但是這些方法在處理過時的小組網站及浪費寶貴存放空間與備份資源的內容時成效不彰。

過時內容不一定會使得網站集合超過配額。當然,您可以設定 SharePoint 傳送電子郵件通知給網站集合擁有人,並在指定期間後自動刪除未使用的網站集合,方法是使用 SharePoint 3.0 管理中心網站的「網站使用確認與刪除」功能,但是這項功能無法用於個別網站層級。網站集合可能包含當前的網站和過時的網站,但是「網站使用確認與刪除」功能無法依照這種細分程度來運作。

稍後我將示範如何透過檢查文件和清單項目的上次修改日期來識別未使用的網站和過時的內容,即使沒有網站集合的存取權限也無妨。這項報告功能並非直接提供,但還好實作方法並不困難。

SharePoint 網站管理分散化

委派 SharePoint 網站管理權限很單純。藉由使用 SharePoint 3.0 管理中心網站、命令列工具 Stsadm.exe 或自訂佈建工具,您可以在基礎結構中建立 Web 應用程式、管理路徑和網站集合。身為 Web 伺服陣列管理員,您可以在建立網站集合時指定主要和次要網站集合管理員。這些網站集合管理員可以是一般的網域使用者。他們不需要 Web 伺服陣列或其他基礎結構伺服器上的系統管理權限。這些系統管理員使用他們的網頁瀏覽器直接在 SharePoint 使用者介面中執行網站管理工作。

[圖 2] 顯示委派的網站管理,您可以在隨附資料的工作表中找到逐步指示。在此範例中,Web 伺服陣列管理員為人事部門 (https://sharepoint/hr) 和 IT 部門 (https://sharepoint/it) 佈建個別的網站集合。

[圖 2] 委派的 SharePoint 網站管理

[圖 2]** 委派的 SharePoint 網站管理 **(按一下影像可放大檢視)

接著,人事部與 IT 系統管理員可以使用 SharePoint 使用者介面的 [網站動作] 功能表中提供的「網站與工作區」功能來建立子層網站,而且可以套用上層的權限,或針對子層網站定義新的系統管理與使用者權限。要注意的是,除非明確設定,否則 Web 伺服陣列管理員無法存取任何上層或子層網站,人事部系統管理員無法存取 IT 網站,而 IT 系統管理員無法存取 HR 網站,雖然所有網站都裝載在相同的 SharePoint 環境中。

網站集合與網站層級的設計需視組織需求而定。在 [圖 2] 範例中,我並未在 https://sharepoint/hr 及 https://sharepoint/it 上建立主網站。換句話說,https://sharepoint 路徑中並沒有網站集合。不過您可以輕鬆地在此路徑中或使用其他管理路徑來建立網站集合,例如 https://sharepoint/sites/hr 和 https://sharepoint/sites/it。

您也可以為人事部或 IT 建立個別的 Web 應用程式,以便建置更直覺化的基礎 URL,例如 http://hr 和 http://it,針對部門佈建一般入口網站,然後使用彙總網頁組件來列出這些主網站中的子層網站資訊。個別網站集合可促進獨立自主的系統管理;有助於限制部門資訊的存取;提供主版頁面、頁面配置、範本、網頁組件和巡覽控制的個別自訂功能;而且可用於將機密資料放置在專屬內容資料庫中,藉此與其他網站集合與內容資料庫區隔。

角色、網站權限和安全性調整

網站集合一旦存在,而且也委派了系統管理權限之後,網站集合管理員就可以開啟上層網站,並使用 [網站動作] 功能表下提供的「網站設定」功能來管理網站集合。其中包括新增 (或移除) 其他具有網站集合中所有網站的完整權限的其他網站集合管理員、建立群組、建立這些群組與角色的關聯性,以及新增使用者到這些群組以取得讀取和參與者權限。另外還包含佈建子層群組網站與小組網站的功能。

雖然您可以為個別使用者授予 SharePoint 權限,但最好還是根據特定角色建立 SharePoint 群組。譬如說,SharePoint 包含可用於「訪客」、「參與者」和「擁有人」等角色的三種預設群組。訪客具有唯讀存取權限;參與者可以新增項目到清單和文件庫中,也可以將網頁個人化;至於擁有人則具有完整控制權。

有一項值得一提的功能,就是 SharePoint 會根據使用者角色執行安全性調整,這表示使用者在使用者介面中看到的連結和項目,僅限於他們實際上有權存取的連結和項目。若您不允許使用者存取某項資源,例如清單 (方法是在 [清單設定] 中設定明確權限),或選取清單項目 (方法是使用項目的內容功能表中的「管理權限」命令),那麼該使用者就看不到清單或項目。如果使用者在瀏覽器中直接指定項目的 URL,使用者就會看到「錯誤:拒絕存取」頁面。

[圖 3] 顯示安全性調整的運作情況。人事部系統管理員具有完整權限,而且能夠使用 [網站動作] 功能表來執行系統管理工作。另一方面,人事部訪客只有網站集合的唯讀權限,而且看不到這個功能表。

[圖 3] SharePoint 介面中根據使用者角色的安全性調整

[圖 3]** SharePoint 介面中根據使用者角色的安全性調整 **(按一下影像可放大檢視)

安全性調整很實用,因為它會隱藏無法存取的功能、連結及項目,但這也表示 Web 伺服陣列管理員若缺乏存取權限,就無法使用 SharePoint 使用者介面來列出網站和網站資源。您將無法在網頁或網頁組件中看到這些資源。不僅如此,無法存取的資源也不會顯示在搜尋結果中,因為 SharePoint 企業版搜尋會根據提交查詢的使用者身份來執行安全性調整。

那命令列呢?

如果圖形化使用者介面無法在不提高網站集合層級權限的情況下提供管道存取所需資訊,也許命令列工具 Stsadm.exe 能提供解決方案。例如,您可能認為您可以使用命令

Stsadm -o enumsites -url https://sharepoint

來列出 https://sharepoint Web 應用程式內的所有網站集合與擁有人。接著您應該可以使用下列命令來列出所有子網站:

Stsadm -o enumsubwebs -url <site collection>

但是,在 Web 伺服陣列環境中,Stsadm.exe 的回應往往是錯誤訊息,指出該資料庫存取權限已遺失。即使您是 Web 伺服陣列管理員,而且可以管理 SharePoint 3.0 管理中心,但 Stsadm.exe 還是無法列舉網站集合。如果您在缺乏 SQL Server 存取權限的情況下在 Web 伺服陣列上使用 Stsadm.exe,就會收到下列錯誤訊息:

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\BIN>stsadm -o enumsites -url https://sharepoint

<Sites Count="2">

<Site Error="無法開啟登入所要求的資料庫 &quot;WSS_Content&quot;。登入失敗。&#xD;&#xA;使用者 'CONTOSO\SPAdmin' 的登入失敗。">

<Site Error="無法開啟登入所要求的資料庫 &quot;WSS_Content&quot;。登入失敗。&#xD;&#xA;使用者 'CONTOSO\SPAdmin' 的登入失敗。"/>

Web 伺服陣列管理員會收到此錯誤訊息的原因是,Stsadm.exe 是在已登入使用者 (例如 CONTOSO\SPAdmin) 的環境中執行,而 SharePoint 3.0 管理中心網站是在與 SharePoint 管理中心 v3 應用程式集區相關聯的系統帳戶 (CONTOSO\WssConfigAdmin) 的環境中存取 SharePoint 資料庫。雖然授予您的 SQL Server 中的內容資料庫的帳戶 db_owner 權限可讓您執行 Stsadm -o enumsites -url https://sharepoint 命令,但您還是無法列舉網站集合內的子層網站。命令 Stsadm -o enumsubwebs -url <site collection> 傳回「拒絕存取」(HRESULT:0x80070005 (E_ACCESSDENIED) 發生例外狀況),您又得重新開始。不過,有一個更好更妥當的方法,也無須提高 SQL Server 權限。

內容資料庫中的網站資訊

如果您無法經由標準的 SharePoint 介面與工具取得所需資訊,就必須直接到 SharePoint 內容資料庫。不過先要提醒您 — 這是最後的手段!內容資料庫依靠專屬結構描述和資料庫結構,而 Microsoft 只在 WSS 3.0 SDK 中記錄一部份的專屬結構描述和資料庫結構,其用意是勸阻客戶直接使用資料庫。可能的話,您應該使用 SharePoint 使用者介面、命令列工具、物件模型或 Web 服務來存取想要的資訊。

如果您沒有其他選擇,必須直接使用資料庫,您至少要將解決方案限制為唯讀存取。修改資料庫結構描述或資料庫結構的作法並沒有受到支援,這麼做可能會導致嚴重問題,使得您必須從備份還原網站集合或重新安裝 SharePoint Web 伺服陣列。

實作報告解決方案來直接存取內容資料庫還有一個可能的替代方案,就是將 Web 伺服陣列管理員帳戶指定為網站集合設定中的次要擁有人。Web 伺服陣列管理員可以在 SharePoint 3.0 管理中心網站中執行這個步驟。您可以在 [應用程式管理] 網頁上的 [SharePoint 網站管理] 下,找到對應的「網站集合管理員」連結。

身為次要網站集合管理員,您可以在網頁瀏覽器中開啟網站集合,顯示 [網站設定],然後按一下 [網站管理] 下的「網站流量報告」連結,前提是您已經在 SharePoint 3.0 管理中心內啟用 [流量分析處理]。如果您要追蹤 SharePoint 伺服器上的記錄檔案中的流量資料,請參考 [作業] 頁面的 [記錄與報告]。「網站流量報告」功能在預設的情況下是停用的。

但是,如果環境中有大量網站集合或嚴格條件,使您無法授予 Web 伺服陣列管理員必要的權限,那麼針對個別網站集合手動建立網站流量報告就不切實際。更務實的方法是實作直接的 ASP.NET 報告應用程式,以便從內容資料庫列出所有網站集合和網站,同時也列出重要的統計資料,例如項目數量、所有項目的大小總計,以及項目的上次修改日期,如 [圖 4] 所示。

[圖 4] 直接從內容資料庫取得網站統計資料

[圖 4]** 直接從內容資料庫取得網站統計資料 **(按一下影像可放大檢視)

如果您使用 SharePoint 管理中心 v3 應用程式集區帳戶的身份來執行此應用程式,您無須提高 SQL Server 權限就可以存取內容資料庫。如前所述,管理中心帳戶已經包含必要的 SQL Server 權限。

隨附資料包含了對 SQL 伺服器的內容資料庫使用 SELECT 查詢的簡單報告解決方案,還有在網頁伺服器上逐步部署此解決方案的指示。要注意的是,我並未實作任何安全性檢查。此解決方案會以匿名驗證執行。

管理中心帳戶提供必要的安全性內容來存取內容資料庫,因此無須驗證使用者。針對解決方案的網站,我使用自訂連接埠,透過 Windows Server 2008 的 Windows® 防火牆加以封鎖,因此只有本機使用者可以開啟 Web 應用程式。如此可滿足我的測試環境中的安全性需求,但是在生產環境中,您應該進一步加強安全性,例如啟用 Windows 驗證和針對 ASP.NET 應用程式的虛擬目錄設定限制的存取權限。

結論

SharePoint 提供富有彈性的網站集合和網站管理功能,可讓您集中處理 SharePoint 基礎結構,同時根據貴公司的特定需求分散化網站管理。集中式基礎結構對於任何規模的公司都有幫助,因為整合環境能有效降低成本;促進部門內部和跨部門的資訊共用;提供堅實的基礎來套用專業知識,以堅定的目標維護高安全性、可靠性和延伸性的環境;以及為使用者提供公司網路中網站與 SharePoint 資源的單一存取點。

同時,個別部門和業務單位仍然能控制其 SharePoint 資源。Web 伺服陣列管理員可以指定網站集合管理員,此網站集合管理員接著會在責任範圍內執行網站管理工作,而不需要 IT 部門介入。

但是,將控制權移轉給部門的同時,Web 伺服陣列管理員也喪失了使用標準 SharePoint 功能和工具來監視基礎結構中的資源使用情況的能力。對內容資料庫套用配額、傳送電子郵件提醒給網站集合管理員,以及基於報告目的追蹤流量資料,上述這些方法都能協助減緩問題,但是若要有效管理 SharePoint 基礎結構,Web 伺服陣列管理員需要其他工具,才能以唯讀的方式直接從內容資料庫擷取想要的網站中繼資料。

可用的選項包括使用 SQL Server 2005 Reporting Services 或類似的企業層級報告解決方案。就像隨附資料顯示的範例一樣,您也可以使用 SQL Server SELECT 查詢來取得必要資訊。

Pav Cherny 是 IT 專家兼作者,專攻 Microsoft 共同作業與整合通訊技術。他的出版品包括白皮書、產品手冊和探討 IT 營運和系統管理的書籍。同時 Pav 也是專營管理文件與本土化服務之 Biblioso Corporation 的總裁。

© 2008 Microsoft Corporation 和 CMP Media, LLC.保留所有權利;未經允許,嚴禁部分或全部複製.