協同工作:SharePoint 2010 中集成 SQL Server 2008 R2 Reporting Services
SQL Server 和 SharePoint 一直以來都能夠良好地協作運行。隨著 SharePoint Server 2010 和 SQL Server 2008 R2 的發布,SharePoint 和 SQL Server 2008 R2 Reporting Services (SSRS) 之間的集成得到了極大的改進。下面,我們將介紹如何配置和使用最新的增強功能。
服務器集成體系結構
SharePoint 的 Reporting Services 外接程序真正驅動了兩個服務器之間的集成。您可將該外接程序安裝在需要與報表服務器集成的所有 SharePoint 2010 Web Front End (WFE) 服務器上,該外接程序可從 Microsoft 下載中心免費下載。圖 1 顯示了集成組件的體系結構。
在 SharePoint 2010 WFE 上,該外接程序安裝三個組件:SSRS 代理、報表查看器 Web 部件和應用程序頁面,通過它們可以查看、存儲和管理 SharePoint 站點或場上的報表服務器內容。SSRS 代理可為 WFE 和報表服務器之間的通信提供便利。在 SharePoint 中的“管理中心 Reporting Services”頁面上,您可配置要訪問的報表服務器的代理,以及訪問服務器的身份驗證方法和憑據。為了實現集成,您必須將報表服務器配置為在 SharePoint 集成模式下運行。
圖 1 服務器集成體系結構
在圖 1 中,要注意的一項是報表服務器上的 SharePoint 對象模型組件。要讓報表服務器了解存儲在 SharePoint 中的報告信息,并且能夠保護這些信息,報表服務器必須與 SharePoint 站點或場上的配置和內容數據庫進行交互。您可以通過在報表服務器上安裝 SharePoint 的最小副本并將其加入到 SharePoint 場中,來實現這個目標。
您在報表服務器上安裝的 SharePoint 版本必須與整個 SharePoint 場中使用的版本相同。 只有當您在獨立計算機上運行報表服務器時,您才需要這樣做。如果您在同一臺計算機上運行 SharePoint 和 Reporting Services,則只需安裝外接程序。
配置集成
總體來說,SharePoint 2010 和 SQL Server 2008 R2 的集成配置已得到簡化。執行配置的順序取決于您已安裝的組件。即便您從頭開始安裝,或者基于現有安裝進行安裝,仍必須安裝所有主要組件,然后才能配置 SharePoint 中的 SSRS 代理。如果從頭開始安裝,則為了使 SQL Server Reporting Service 2008 R2 與 SharePoint 2010 的集成獲得最佳效果,建議遵循以下順序:
- 運行 SharePoint 2010 必備組件安裝程序,這樣將安裝 SharePoint 的 SSRS 2008 R2 外接程序。
- 在場配置中安裝和配置 SharePoint 2010。
- 如果報表服務器計算機和 SharePoint WFE 計算機是分開的,請在報表服務器計算機上重復步驟 1 和步驟 2,并對其進行配置以加入在步驟 2 中創建的 SharePoint 場。
- 在 SharePoint 集成模式下安裝 SQL Server Reporting Services。
- 通過“Reporting Services 集成”頁面配置 SSRS 代理,并激活 Reporting Services 功能。
如果沒有在您的站點的“文檔”|“新建”菜單中看到 Reporting Services 內容類型,您將需要手動添加這些類型。我將在下文的與 Report Builder 3.0 集成 部分中介紹如何添加“報表服務器內容”類型。
在本例中,我將使用 SQL Server 作為 SharePoint 數據庫,而不使用 SharePoint 默認的 Embedded Edition。如果您打算將所有組件安裝在一臺計算機上,則無需執行步驟 5。步驟 1 和步驟 2 可以合并在 SQL Server 安裝過程中。
如果您已安裝 SharePoint,則可隨時下載和安裝外接程序。外接程序安裝過程將向“SharePoint 管理中心”添加必需的頁面,并使用商務智能 (BI) 中心站點模板,為站點中的現有 SharePoint 庫添加新的報表服務器內容類型。
在 SharePoint 一端,您可在 SharePoint Server 2010 或 SharePoint Foundation 2010 上配置集成。兩種軟件都支持 Reporting Services 外接程序的安裝。如果您將 SharePoint 和 Reporting Services 安裝在不同的計算機上,則必須在報表服務器上安裝相同版本的 SharePoint。例如,如果使用 SharePoint Server 2010 作為 Web 前端,則不能在報表服務器上安裝 SharePoint Foundation 2010。
外接程序安裝非常簡單;除了輸入您的姓名和公司之外,不需要其他任何配置。如果您是第一次安裝 SharePoint,則應在安裝 SharePoint 之前安裝外接程序;在您運行 SharePoint 2010 必備組件時,會自動完成此安裝。
配置報表服務器非常簡單。主要注意事項包括:
- SQL Server 的版本必須為 Standard、Enterprise 或更高版本。
- 必須為 SharePoint 集成模式創建報表服務器數據庫。
- 如果您將 SharePoint 和 Reporting Services 安裝在不同的計算機上,則將需要 SharePoint 的最小安裝,并將其加入報表服務器上的 SharePoint 場。
報表服務器作為單個 Windows 服務實現,該服務在內置帳戶或者本地或域 Windows 用戶帳戶下運行。在 SharePoint 集成模式下,報表服務器帳戶要進行適當設置,以訪問 SharePoint 配置和內容數據庫以及 SharePoint 對象模型資源。當通過“Reporting Services 集成”頁面配置 Reporting Services 與 SharePoint 的集成時,需要進行此類設置。
當身份驗證模式為“Windows 集成”時,登錄到 SharePoint 的 Windows 用戶在從 WFE 連接到報表服務器時將被模擬。當身份驗證模式為可信帳戶時,登錄到 SharePoint 的用戶的 SharePoint 用戶上下文將以 SharePoint 用戶令牌的形式傳遞到報表服務器。使用 SharePoint WFE 的應用程序池帳戶進行從 WFE 到報表服務器的連接。您可在 TechNet 文章“配置 Reporting Services 實現 SharePoint 2010 集成”中找到服務帳戶配置的摘要。
如果您已使用默認設置安裝 Reporting Services,則 Reporting Services 數據庫將處于本機模式。要在 SharePoint 集成模式下運行,您需要返回到 Reporting Services 配置工具,并從“數據庫設置”頁面將模式從“本機”更改為“SharePoint 集成”。
可以隨時將報表服務器模式從“本機”更改為“SharePoint 集成”,但這不會轉換現有數據庫。每次切換時,您必須創建一個新數據庫或連接到一個現有數據庫。
在配置 SharePoint 中的“Reporting Services 代理”選項之前,需要進行另外一項配置。您應確保未在 Web 應用程序上啟用匿名訪問。雖然這不會妨礙您配置“Reporting Services 代理”設置,但用戶在運行報表時將會出現錯誤。您可以選擇使用 Windows 身份驗證或其他身份驗證提供程序提供的任何基于聲明的身份驗證,如果要配置報表服務器與 SharePoint 場之間的集成,則可將場中的每個 SharePoint Web 應用程序配置為使用不同的身份驗證提供程序。
外接程序將在“SharePoint 管理中心”的“一般應用程序設置”頁面中創建新的“Reporting Services”部分。在“Reporting Services 集成”頁面上,您需要輸入報表服務器 URL 和身份驗證詳細信息,并在場中的所有或選定站點集合中激活 Reporting Services 功能。
圖 2 配置 Reporting Services 代理
完成圖 2 中所示頁面的設置后,集成配置過程完成。
與 Report Builder 3.0 集成
SharePoint 和 Reporting Services 之間的集成的主要優點是允許用戶從 SharePoint 內部創建、修改和發布報表。Reporting Services 提供了一些預定義內容類型,可用于管理各種文件,包括共享報表數據源 (.rsds) 文件、報表生成器模型 (.smdl) 和報表生成器報表定義 (.rdl) 文件。在已配置集成以允許用戶從功能區和上下文菜單創建和管理這些新內容類型之后,您需要在這些庫上啟用新內容類型。
如果使用 BI 中心站點模板,則無需進行任何操作,內容類型將在模板以及使用此模板創建的所有站點中自動啟用。對于其他所有站點和文檔庫,您需要執行兩步驟的配置過程。首先,您需要在庫中啟用內容類型管理;它在默認情況下處于關閉狀態。然后,您需要為庫啟用內容類型。若要為文檔庫啟用內容類型管理,請按照 TechNet 文章“如何:將報表服務器內容類型添加到庫(SharePoint 集成模式下的 Reporting Services)”中的過程操作。
在將新內容類型添加到庫后,“文檔”選項卡上的“新建文檔”下拉列表中將出現三個新選項。如果現在選擇“報表生成器報表”選項,則會將 Report Builder 3.0 下載到客戶端并運行該程序。您可從 SharePoint 管理中心更改此行為。通過“Reporting Services 服務器默認值”頁面,您可以關閉此選項,并為報表生成器配置其他 URL。
在 SharePoint 站點上使用報表查看器 Web 部件
報表查看器 Web 部件是一個自定義 Web 部件,由 Reporting Services 外接程序安裝??墒褂迷?Web 部件來查看、導航、打印和導出報表服務器上的報表。若要將此 Web 部件添加到頁面中,可以使用 TechNet 文章“如何:將報表查看器 Web 部件添加到網頁(SharePoint 集成模式下的 Reporting Services)”中的步驟。
每個報表查看器 Web 部件基于在報表屬性中指定的報表文件 (.rdl) 的絕對 URL,每次呈現一個報表。該 URL 必須為當前 SharePoint 站點或同一 Web 應用程序或場中的站點上的報表的完全限定路徑。該 URL 必須解析為文檔庫或包含報表的文檔庫中的文件夾。報表 URL 必須包括 .rdl 文件擴展名。如果報表依賴于模型或共享數據源文件,則無需在 URL 中指定這些文件。報表包含對其需要的文件的引用。
聲明身份驗證和 Reporting Services
SharePoint Server 2010 推出的一項新功能是支持基于聲明的身份驗證。在聲明感知應用程序中,客戶端向應用程序提交“聲明”。這些聲明是關于用戶的數條信息,例如用戶名、電子郵件地址或經理姓名。這種方式為應用程序提供的信息要多于使用 Kerberos 時接收的信息。例如,對于一個采購應用程序:傳遞到應用程序的兩個聲明可能是用戶的經理的電子郵件地址和用戶的采購限額。在非聲明感知應用程序中,此類信息必須由應用程序管理。
在 SharePoint 中,聲明身份驗證解決了在多個組織之間共享 SharePoint 站點的問題。使用 Active Directory 聯合身份驗證服務 (AD FS) 等產品,兩個使用不同身份驗證方法的組織可以設置聲明,讓 SharePoint 能夠識別用戶身份并分配正確的權限。
由于此功能內置在 SharePoint 2010 產品中,因此 Reporting Services 可以使用此身份驗證模式。Reporting Services 不是聲明感知的,而是通過可信帳戶與 SharePoint 通信。SQL Server 2008 R2 外接程序中的代理服務使用 SharePoint 對象模型,采用報表服務器能夠理解并用來對 SharePoint 數據庫進行驗證的 SharePoint 用戶令牌形式將聲明令牌轉換為對應的 SharePoint 用戶上下文。簡而言之,此過程的工作方式如下:
- SharePoint 執行適當的聲明身份驗證,并使用 SharePoint Secure Token Service 將聲明令牌傳遞到 Reporting Services 代理。
- 然后,Reporting Services 代理使用聲明令牌與 SharePoint 對象模型進行通信,并生成相應的 SharePoint 用戶令牌,將令牌轉發到報表服務器。
- 報表服務器使用 SharePoint 用戶令牌針對本地 SharePoint 對象模型生成正確的 SharePoint 用戶上下文。
- 如果用戶擁有必需的權限,則報表服務器會使用它通常使用的適當 SharePoint 用戶上下文,將請求的信息發送回 SharePoint。
本地列表報告
SQL Server 2008 R2 Reporting Services 現在支持將 SharePoint 列表作為數據源。有了此支持功能,您能夠從 SharePoint Foundation 2010、SharePoint Server 2010、Windows SharePoint Services 3.0 和 Office SharePoint Server 2007 檢索列表數據。訪問列表數據的功能不依賴外接程序,也不依賴在本機或 SharePoint 集成模式下運行報表服務器。該功能已內置在報表服務器中。不同配置的區別在于訪問方法。
有兩種訪問 SharePoint 列表數據的方法。一種方法是通過 lists.asmx web 服務,另一種方法是通過 SharePoint 對象模型 API。在任何 SharePoint 安裝上,如果輸入 URL http://<sharepoint_server_name>\lists.asmx,您將獲得能夠訪問的 SharePoint 站點上的所有列表的 XML 列表。使用此方法,Report Builder 3.0 可以檢索列表。在本機模式下配置的報表服務器也使用此方法。
SharePoint 對象模型 API 方法可在兩種方案中使用。一種方案是報表服務器在 SharePoint 集成模式下配置,列表存在于集成了 Reporting Services 的同一個 SharePoint 場中,它們都在同一臺計算機上;請記住,在此方案中,有一個 SharePoint 副本在報表服務器上運行,報表服務器為其提供對 API 集的訪問。另一種方案是同時安裝了 SharePoint 2010 和外接程序,但您沒有報表服務器。這稱為本地模式,將在下文的“沒有 Reporting Services 的報告”一節中介紹。
若要在報表中使用從 SharePoint 列表獲取的數據,首先需要創建數據源,然后創建使用該數據源的數據集。在 Report Builder 3.0 中,“數據源屬性”頁面上有一種新的連接類型,稱為“Microsoft SharePoint 列表”,如圖 3 所示。除了此選項之外,您還要輸入 SharePoint 站點的 URL(無需在 URL 中添加 lists.asmx)。還可為數據源配置在訪問 SharePoint 服務器時使用的不同憑據。
圖 3 SharePoint 列表連接類型
基于此數據源創建新數據集時,將顯示您可以訪問的站點上的所有 SharePoint 列表的列表。然后,您可以向下鉆取到列表并訪問各個列表項,創建篩選器,創建參數并創建報表,就如同它是 SQL 數據庫表那樣。
備用訪問映射支持
另一項集成增強功能是支持備用訪問映射 (AAM)。從 SharePoint 2007 版本就已經開始提供 AAM 功能,但 Reporting Services 不支持 AAM?,F在,如果您在 SharePoint 管理中心配置備用訪問映射,Reporting Service 外接程序將維持 URL 結構,如圖 4 中的簡單報表所示。http://sql-01 和 http://www.contoso.com 都呈現相同的報表。
圖 4 備用訪問映射
沒有 Reporting Services 的報告
截止目前,本文中的所有信息都屬于我們所說的連接模式。在以前版本的 Reporting Services 中,連接模式是唯一可用的模式,這意味著 SharePoint 必須連接到在 SharePoint 集成模式下配置的 Reporting Services 報表服務器,才能使用報表查看器呈現報表。
隨著 SQL Server 2008 R2 的發布,您可在未將 SharePoint 站點或場與 Reporting Services 報表服務器集成的情況下呈現報表。相反,當數據擴展插件支持本地模式 報告時,您可以使用報表查看器從 SharePoint 直接呈現報表。只有 SharePoint 列表和 Microsoft Access 2010 報告擴展插件默認支持此功能。
在本地模式下,您還可以呈現具有內置數據源或來自 .rsds 文件的共享數據源的報表。但是,您不能管理報表或其關聯數據源,因為在本地模式下不支持此功能。
支持的 SharePoint 外接程序和報表服務器的組合
隨著 SQL Server 2008 R2 和 SharePoint Server 2010 的發布,現在有三個版本的 SQL、三個版本的外接程序和兩個版本的 SharePoint。集成組件可在所有這些版本上運行,但您必須組合并匹配正確的版本。圖 5 中的表格提供了支持的產品組合。
圖 5 支持的 SharePoint 外接程序和報表服務器的組合
原文:http://technet.microsoft.com/zh-cn/magazine/ff686706.aspx
來源:微軟TechNet中文站