Reporting Services 中的數據連接、數據源和連接字串
若要在 Reporting Services 報表中包含數據,您必須先建立 數據源 和 數據集。 本主題說明數據源的類型、如何建立數據源,以及與數據源認證相關的重要資訊。 資料來源包括資料來源類型、連接資訊,以及要使用的認證類型。 數據源有兩種類型:內嵌和共用。 內嵌數據源定義於報表中,並只供該報表使用。 共用數據源是由報表獨立定義,而且可供多個報表使用。 如需詳細資訊,請參閱內嵌和共用數據連線或數據源(報表產生器 和 SSRS)和內嵌和共用數據集(報表產生器 和 SSRS)。
適用於:Reporting Services 原生模式 | Reporting Services SharePoint 模式 |
注意
您可以在 SQL Server Data Tools 的 報表產生器 和 報表設計師 中建立和修改報表定義 (.rdl)。 每個撰寫環境提供不同的方式來建立、開啟及儲存報表和相關專案。 如需詳細資訊,請參閱 microsoft.com 上的 報表設計師 和 報表產生器 (SSRS) 中設計報表。
內嵌和共享數據源
內嵌與共用資料來源之間的差異在於建立、儲存和管理的方式。
在報表設計師中,為 SQL Server Data Tools (SSDT) 專案建立內嵌或共用資料來源。 您可以控制要在本機使用它們進行預覽,還是將它們當做專案的一部分部署至報表伺服器或 SharePoint 網站。 您可以使用已經安裝在電腦以及報表伺服器或 SharePoint 網站 (部署報表的所在位置) 上的自訂資料延伸模組。
系統管理員可以安裝與設定其他資料處理延伸模組以及 .NET Framework 資料提供者。 如需詳細資訊,請參閱資料處理延伸模組與 .NET Framework Data Providers (SSRS)。
開發人員可以使用 Microsoft.ReportingServices.DataProcessing API 建立資料處理延伸模組,以支援其他類型的資料來源。
在報表產生器中,您可以瀏覽至報表伺服器或 SharePoint 網站,然後選取共用資料來源或在報表中建立內嵌資料來源。 您無法在 報表產生器 中建立共享資料來源。 您無法在 報表產生器 中使用自訂資料延伸模組
內建的資料延伸模組
Reporting Services 中的預設數據延伸模組包含下列類型的數據連線:
Microsoft SQL Server
Microsoft SQL Server Analysis Services
Microsoft SharePoint 清單
Azure SQL Database
Microsoft SQL Server 平行處理資料倉儲
OLE DB
Oracle
SAP NetWeaver BI
Hyperion Essbase
Teradata
XML
ODBC
Microsoft Power View 的 BI 語意模型:在已針對 PowerPivot 資源庫和 Power View 設定的 SharePoint 網站上,可以使用此數據源類型。 此數據源類型僅用於Power View 簡報。 如需詳細資訊,請參閱 建置適用於Power View的完美BI語意表格式模型。
如需 Reporting Services 所支援的完整資料來源和版本清單,請參閱 Reporting Services 支援的資料來源 (SSRS)。
建立資料來源
若要建立數據源,您必須具備下列資訊:
數據源類型 例如,Microsoft SQL Server 的連接類型。 從連線類型的下拉式清單中選擇此值。
連接資訊 連接資訊 包括數據來源的名稱和位置,以及每個數據提供者專屬的連接屬性。 連接字串 是連接資訊的文字表示法。 例如,如果數據源是 SQL Server 資料庫,您可以指定資料庫的名稱。 針對內嵌數據源,您也可以撰寫在運行時間評估的表達式型 連接字串。 如需詳細資訊,請參閱 本主題稍後的表達式型連接字串 。
認證 您提供存取資料所需的認證。 數據源擁有者必須授與您適當的許可權,才能存取數據源和數據源上的特定數據。 例如,若要連線到安裝在網路伺服器上的 AdventureWorks2012 範例資料庫,您必須具有連線到伺服器的許可權,以及存取資料庫的只讀許可權。
注意
根據設計,認證會獨立於數據源進行管理。 您用來在本機系統上預覽報表的認證可能會與檢視已發佈報表所需的認證不同。 將數據源儲存到報表伺服器或 SharePoint 網站之後,您可能需要將認證變更為從該位置運作。 如需詳細資訊,請參閱 數據源的認證。
注意
當您在 SQL Server Data Tools (SSDT) 中建立報表的內嵌數據源時,您必須在 [方案總管] 或 [報表數據] 窗格中建立數據源,但在 [伺服器總管] 中,您必須在 [報表設計師] 中建立數據源。 SQL Server 報表設計師 不支援在 [伺服器總管] 中建立的 Visual Studio 數據源。
[報表數據] 窗格會顯示已新增至報表的內嵌數據源和共用數據源的參考。 在 報表產生器 中,共用數據源參考會指向報表伺服器或 SharePoint 網站上的共享數據源。 在 報表設計師 中,共用數據源參考會指向 [共享數據源] 資料夾下 方案總管 中的共享數據源。
數據源的認證
根據設計,可以從連線資訊獨立儲存和管理認證。 認證可用來建立數據源、執行數據集查詢,以及預覽報表。
注意
建議您不要在數據源的連接屬性中包含登入資訊,例如登入名稱和密碼。 盡可能使用具有預存認證的共享數據源。 在撰寫環境中,當您建立數據連線或執行數據集查詢時,請使用 [數據源] 對話方塊的 [認證] 頁面來輸入認證。
您為計算機進行數據存取而輸入的認證會安全地儲存在本機專案組態檔中,且專屬於您的電腦。 如果您將項目檔複製到另一部計算機,則必須重新定義數據源的認證。
當您將報表部署至報表伺服器或 SharePoint 網站時,其內嵌和共用數據源會獨立管理。 從您的電腦存取資料所需的數據來源認證可能與報表伺服器存取數據所需的認證不同。
最佳做法是確認數據源連線在您發佈報表之後繼續成功連線。 如果您需要變更認證,您可以直接在報表伺服器上修改認證。
若要變更報表所使用的數據源,您可以在原生模式報表管理員中,或從 SharePoint 模式的文件庫修改報表屬性。 如需詳細資訊,請參閱下列:
一般連接字串範例
連接字串是資料提供者之連接屬性的文字表示。 下表列出各種資料連接類型之連接字串的範例。
資料來源 | 範例 | 說明 |
---|---|---|
本機伺服器上的 SQL Server 資料庫 | data source="(local)";initial catalog=AdventureWorks |
將資料來源型態設定為 Microsoft SQL Server 。 如需詳細資訊,請參閱 SQL Server 連線類型 (SSRS) (機器翻譯)。 |
本機伺服器上的 SQL Server 資料庫 | data source="(local)";initial catalog=AdventureWorks |
將資料來源型態設定為 Microsoft SQL Server 。 |
SQL Server 執行個體 database |
Data Source=localhost\MSSQL10_50.InstanceName; Initial Catalog=AdventureWorks |
將資料來源型態設定為 Microsoft SQL Server 。 |
SQL Server Express 資料庫 | Data Source=localhost\MSSQL10_50.SQLEXPRESS; Initial Catalog=AdventureWorks |
將資料來源型態設定為 Microsoft SQL Server 。 |
雲端中的 SQL 資料庫 | Data Source=<host>;Initial Catalog=AdventureWorks; Encrypt=True |
將資料來源型態設定為 Azure SQL Database 。 如需詳細資訊,請參閱 SQL Azure 連線類型 (SSRS) 。 |
SQL Server 平行資料倉儲 | HOST=<IP address>;database= AdventureWorks; port=<port> |
將資料來源型態設定為 Microsoft SQL Server Parallel Data Warehouse 。 如需詳細資訊,請參閱 SQL Server 平行資料倉儲連線類型 (SSRS)。 |
本機伺服器上的 Analysis Services 資料庫 | data source=localhost;initial catalog=Adventure Works DW |
將資料來源型態設定為 Microsoft SQL Server Analysis Services 。 如需詳細資訊,請參閱 MDX 的 Analysis Services 連線類型 (SSRS) 或 DMX 的 Analysis Services 連線類型 (SSRS)。 |
具有 Sales 檢視方塊的 Analysis Services 表格式模型資料庫 | Data source=<servername>;initial catalog= Adventure Works DW;cube='Sales' |
將資料來源型態設定為 Microsoft SQL Server Analysis Services 。 在 cube= 設定中指定檢視方塊名稱。 如需詳細資訊,請參閱檢視方塊 (SSAS 表格式)。 |
以原生模式設定之報表伺服器上的報表模型數據源 | Server=http://myreportservername/reportserver; datasource=/models/Adventure Works |
指定報表伺服器或文檔庫 URL,以及報表伺服器資料夾或文件庫資料夾命名空間中已發佈模型的路徑。 |
以 SharePoint 整合模式設定之報表伺服器上的報表模型數據源 | Server=https://server; datasource=https://server/site/documents/models/Adventure Works.smdl |
指定報表伺服器或文檔庫 URL,以及報表伺服器資料夾或文件庫資料夾命名空間中已發佈模型的路徑。 |
SQL Server 2000 Analysis Services 伺服器 | provider=MSOLAP.2;data source=<remote server name>;initial catalog=FoodMart 2000 |
將資料來源型態設定為 OLE DB Provider for OLAP Services 8.0 。如果您將 屬性設定 ConnectTo 為 8.0 ,您可以更快速地連線到 SQL Server 2000 Analysis Services 數據源。 若要設定此屬性,請使用 [ 連接屬性 ] 對話框[ 進階屬性 ] 索引標籤。 |
Oracle 伺服器 | data source=myserver |
將資料來源型態設定為 Oracle 。 Oracle 用戶端工具必須安裝在報表設計師電腦和報表伺服器上。 如需詳細資訊,請參閱 Oracle 連線類型 (SSRS)。 |
SAP NetWeaver BI 資料來源 | DataSource=http://mySAPNetWeaverBIServer:8000/sap/bw/xml/soap/xmla |
將資料來源型態設定為 SAP NetWeaver BI 。 如需詳細資訊,請參閱 SAP NetWeaver BI 連線類型 (SSRS)。 |
Hyperion Essbase 資料來源 | Data Source=https://localhost:13080/aps/XMLA; Initial Catalog=Sample |
將資料來源型態設定為 Hyperion Essbase 。 如需詳細資訊,請參閱 Hyperion Essbase 連線類型 (SSRS)。 |
Teradata 資料來源 | data source= <NNN>。<NNN>。<NNN>。<NNN>; |
將資料來源型態設定為 Teradata 。 連接字串是四個欄位形式的網際網路通訊協定 (IP) 位址,其中每個欄位都可以是 1 到 3 位數。 如需詳細資訊,請參閱 Teradata 連線類型 (SSRS)。 |
XML 資料來源, Web 服務 | data source=http://adventure-works.com/results.aspx |
將資料來源型態設定為 XML 。 連接字串是支援 Web 服務定義語言 (WSDL) 之 Web 服務的 URL。 如需詳細資訊,請參閱 XML 連線類型 (SSRS)。 |
XML 資料來源、XML 文件 | https://localhost/XML/Customers.xml |
將資料來源型態設定為 XML 。 連接字串是 XML 文件的 URL。 |
XML 資料來源, 內嵌 XML 文件 | Empty | 將資料來源型態設定為 XML 。 XML 資料內嵌在報表定義中。 |
如果您無法使用 連線到報表伺服器 localhost
,請檢查 TCP/IP 通訊協定的網路通訊協定是否已啟用。 如需詳細資訊,請參閱 Configure Client Protocols。
密碼中的特殊字元
如果您設定 ODBC 或 SQL 資料來源以提示密碼或將密碼包含在連接字串中,則當使用者輸入含有特殊字元 (例如:標點符號) 的密碼時,某些基礎資料來源驅動程式無法驗證這些特殊字元。 當您處理報表時,訊息「不是有效密碼」可能會指出此問題。 如果無法變更密碼,您可以洽詢資料庫管理員,將適當的認證儲存在伺服器上,做為系統 ODBC 資料來源名稱 (DSN) 的一部分。 如需詳細資訊,請參閱 .NET Framework SDK 文件集中的 "OdbcConnection.ConnectionString"。
以表達式為基礎的連接字串
以運算式為基礎的連接字串是在執行階段進行評估。 例如,您可以將資料來源指定為參數,包括連接字串中的參數參考,並允許使用者選擇報表的資料來源。 例如,假設有一家跨國企業,在許多國家/地區有資料伺服器。 執行銷售報表的使用者可以在執行報表之前,使用以運算式為基礎的連接字串,來選取特定國家/地區的資料來源。
下列範例說明如何在 SQL Server 連接字串中使用資料來源運算式。 本範例假設您已經建立一個名為 ServerName
的報表參數:
="data source=" & Parameters!ServerName.Value & ";initial catalog=AdventureWorks"
資料來源運算式是在執行階段,或者在預覽報表時處理。 運算式必須以 Visual Basic 撰寫。 定義資料來源運算式時,請使用下列指導方針:
使用靜態連接字串設計報表。 靜態連接字串是指未透過運算式設定的連接字串 (例如,您遵循建立報表特定或共用資料來源的步驟執行時,所定義的就是靜態連接字串)。 使用靜態連接字串可以讓您連接到報表設計師中的資料來源,以便取得建立報表所需的查詢結果。
定義資料來源連接時,請勿使用共用資料來源。 您不能在共用資料來源中使用資料來源運算式。 您必須為報表定義內嵌的資料來源。
分開指定認證與連接字串。 您可以使用預存認證、提示認證或整合式安全性。
加入報表參數,以指定資料來源。 針對參數值,您可以提供靜態可用的值清單 (在此情況下,可用的值應為可以搭配報表使用的資料來源),或者定義在執行階段擷取資料來源清單的查詢。
請確定資料來源清單共用相同的資料庫結構描述。 所有的報表設計都是從結構描述資訊開始。 如果用於定義報表的結構描述,和報表在執行階段使用的實際結構描述不符,報表可能不會執行。
發行報表之前,請以運算式取代靜態連接字串。 等到設計好報表之後,再以運算式取代靜態連接字串。 一旦使用運算式,就不能在報表設計師中執行查詢。 此外,[報表資料] 窗格中的欄位清單與 [參數] 清單也不會自動更新。
另請參閱
內嵌和共用數據連接或數據來源(報表產生器 和 SSRS)管理報表數據源數據源屬性對話框、認證共用數據源屬性對話框、認證建立、修改和刪除共享數據源 (SSRS)設定部署屬性 (Reporting Services)指定報表數據源的認證和連接資訊新增與驗證資料連線或資料來源 (報表產生器和 SSRS)