資料連接、資料來源及連接字串 (SSRS)
若要在報表中加入資料,您必須先建立「資料連接」(Data Connection) (也稱為「資料來源」(Data Source)),然後建立資料集。 資料連接包括資料來源類型、連接資訊,以及要使用的認證類型。 資料來源有兩種類型:內嵌和共用。 內嵌資料來源是定義在報表中,而且只能供該報表使用。 共用資料來源則與報表分開定義,而且可以供多個報表使用。 如需詳細資訊,請參閱<內嵌和共用資料連接或資料來源 (報表產生器及 SSRS)>和<內嵌和共用資料集 (報表產生器及 SSRS)>。
[!附註]
您可以在報表產生器以及 SQL Server Data Tools 的報表設計師中建立和修改報表定義 (.rdl)。每種撰寫環境都會提供不同的方式來建立、開啟和儲存報表與相關的項目。如需詳細資訊,請參閱 microsoft.com 網站上的<在報表設計師及報表產生器中設計報表 (SSRS)>。
內嵌與共用資料來源之間的差異在於建立、儲存和管理的方式。
在報表設計師中,您可以將內嵌或共用資料來源建立成 SQL Server Data Tools (SSDT) 專案的一部分。 您可以控制要在本機使用它們進行預覽,還是將它們當做專案的一部分部署至報表伺服器或 SharePoint 網站。 您可以使用已經安裝在電腦以及報表伺服器或 SharePoint 網站 (部署報表的所在位置) 上的自訂資料延伸模組。
系統管理員可以安裝與設定其他資料處理延伸模組以及 .NET Framework 資料提供者。 如需詳細資訊,請參閱<資料處理延伸模組與 .NET Framework Data Provider (SSRS)>。
開發人員可以使用 Microsoft.ReportingServices.DataProcessing API 建立資料處理延伸模組,以支援其他類型的資料來源。
在報表產生器中,您可以瀏覽至報表伺服器或 SharePoint 網站,然後選取共用資料來源或在報表中建立內嵌資料來源。 您無法在報表產生器中建立共用資料來源。 您無法在報表產生器中使用自訂資料延伸模組。
內建的資料連接
內建資料延伸模組包括下列資料連接類型:
Microsoft SQL Server
Microsoft SQL Server Analysis Services
Microsoft SharePoint 清單
Windows Azure SQL 資料庫
Microsoft SQL Server Parallel Data Warehouse
OLE DB
Oracle
SAP NetWeaver BI
Hyperion Essbase
Teradata
XML
ODBC
[!附註]
從 SQL Server Reporting Services 連接到 資料表儲存體並不屬於內建的資料連接。
如需範例,請參閱一般連接字串範例。
[!附註]
在已針對 PowerPivot 圖庫和 Power View 設定的 SharePoint 網站上,可以使用 [Power View 的 Microsoft 商業智慧語意模型] 資料來源類型。 此資料來源類型僅用於 Power View 簡報。 如需詳細資訊,請參閱<Power View (SSRS)>和<建立資料模型的共用資料來源 (SSRS)>。
指定資料來源
若要建立資料來源,您必須擁有下列資訊:
資料來源類型:連接類型,例如 Microsoft SQL Server。 請從連接類型的下拉式清單中選擇此值。
連接資訊:連接資訊包括資料來源的名稱和位置,以及每個資料提供者特有的連接屬性。 「連接字串」(Connection String) 是連接資訊的文字表示。 例如,如果資料來源是 SQL Server 資料庫,您就可以指定資料庫的名稱。 若是內嵌的資料來源,您也可以撰寫以運算式為基礎的連接字串,在執行階段接受評估。 如需詳細資訊,請參閱本主題稍後的以運算式為基礎的連接字串。
認證:您可以提供存取資料所需的認證。 資料來源擁有者必須已經授與您適當的權限,您才能同時存取資料來源及資料來源上的特定資料。 例如,若要連接到網路伺服器上所安裝的 AdventureWorks2012 範例資料庫,您必須擁有連接伺服器的權限,以及存取資料庫的唯讀權限。
[!附註]
根據設計,認證會與資料來源分開管理。 在本機系統上用於預覽報表的認證可能與檢視已發行之報表所需的認證不同。 將資料來源儲存至報表伺服器或 SharePoint 網站之後,您可能必須變更認證,才能從該位置工作。 如需詳細資訊,請參閱<資料來源的認證>。
[!附註]
當您在 SQL Server Data Tools (SSDT) 中,為報表建立內嵌資料來源時,就必須在 [方案總管] 或 [報表資料] 窗格 (而非 [伺服器總管]) 的報表設計師中建立資料來源。 SQL Server 報表設計師不支援在 [伺服器總管] 中建立的 Visual Studio 資料來源。
[報表資料] 窗格會顯示內嵌資料來源以及已經加入至報表之共用資料來源的參考。 在報表產生器中,共用資料來源參考會指向報表伺服器或 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 執行個體 資料庫 |
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 |
將資料來源類型設定為 Windows Azure SQL Database。 如需詳細資訊,請參閱<SQL Azure 連接類型 (SSRS)>。 |
SQL Server 平行資料倉儲 |
HOST=<IP address>;database= AdventureWorks; port=<port> |
將資料來源類型設定為 Microsoft SQL Server Parallel Data Warehouse。 如需詳細資訊,請參閱<SQL Server Parallel Data Warehouse 連接類型 (SSRS)>。 |
本機伺服器上的 Analysis Services 資料庫 |
data source=localhost;initial catalog=Adventure Works DW |
將資料來源類型設定為 Microsoft SQL Server Analysis Services。 如需詳細資訊,請參閱<Analysis Services Connection Type for MDX (SSRS)>或<Analysis Services Connection Type for DMX (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 以及報表伺服器資料或文件庫資料夾命名空間中已發行模型的路徑。 如需詳細資訊,請參閱<報表模型連接 (SSRS)>。 |
在 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 文件 |
空白 |
將資料來源類型設定為 XML。 XML 資料內嵌在報表定義中。 |
如果無法使用 localhost 連接到報表伺服器,請檢查 TCP/IP 通訊協定的網路通訊協定是否已啟用。 如需詳細資訊,請參閱<設定用戶端通訊協定>。
如需有關連接到這些資料來源類型所需組態的詳細資訊,請參閱<從外部資料來源加入資料 (SSRS)>或<Reporting Services (SSRS) 支援的資料來源>底下的特定資料連接主題。
資料來源的認證
根據設計,認證可以與連接資訊分開儲存和管理。 認證是用來建立資料來源、執行資料集查詢,以及預覽報表。
[!附註]
我們建議您不要在資料來源的連接屬性中加入登入資訊,例如登入名稱和密碼。 請盡可能使用共用資料來源搭配預存認證。 在撰寫環境中,當您建立資料連接或執行資料集查詢時,請使用 [資料來源] 對話方塊的 [認證] 頁面來輸入認證。
您針對從電腦進行資料存取所輸入的認證會安全地儲存在本機專案組態檔中,而且是該電腦專用的。 如果您將專案檔案複製到其他電腦,則必須重新定義資料來源的認證。
當您將報表部署至報表伺服器或 SharePoint 網站時,其內嵌和共用資料來源就會分開管理。 從電腦存取資料所需的資料來源認證可能與報表伺服器存取資料所需的認證不同。 最好是在發行報表之後,確認資料來源連接是否繼續連接成功。 如果您需要變更認證,可以直接在報表伺服器上進行修改。
若要變更報表所使用的資料來源,您可以手動巡覽至報表伺服器資料夾並依照名稱選取資料來源,藉以修改報表屬性。 如需詳細資訊,請參閱<將報表或模型繫結至共用資料來源 (SSRS)>。
如需詳細資訊,請參閱下列主題:
密碼中的特殊字元
如果您設定 ODBC 或 SQL 資料來源以提示密碼或將密碼包含在連接字串中,則當使用者輸入含有特殊字元 (例如:標點符號) 的密碼時,某些基礎資料來源驅動程式無法驗證這些特殊字元。 當您處理報表時,訊息「不是有效密碼」可能會指出此問題。 如果無法變更密碼,您可以洽詢資料庫管理員,將適當的認證儲存在伺服器上,做為系統 ODBC 資料來源名稱 (DSN) 的一部分。 如需詳細資訊,請參閱 .NET Framework SDK 文件集中的<OdbcConnection.ConnectionString>。
以運算式為基礎的連接字串
以運算式為基礎的連接字串是在執行階段進行評估。 例如,您可以將資料來源指定為參數,包括連接字串中的參數參考,並允許使用者選擇報表的資料來源。 例如,假設有一家跨國企業,在許多國家 (地區) 有資料伺服器。 執行銷售報表的使用者可以在執行報表之前,使用以運算式為基礎的連接字串,來選取特定國家 (地區) 的資料來源。
下列範例說明在 SQL Server 連接字串中,使用資料來源運算式。 本範例假設您已經建立一個名為 ServerName 的報表參數:
="data source=" & Parameters!ServerName.Value & ";initial catalog=AdventureWorks"
資料來源運算式是在執行階段,或者在預覽報表時處理。 運算式必須以 Visual Basic 撰寫。 定義資料來源運算式時,請使用下列指導方針:
使用靜態連接字串設計報表。 靜態連接字串是指未透過運算式設定的連接字串 (例如,您遵循建立報表特定或共用資料來源的步驟執行時,所定義的就是靜態連接字串)。 使用靜態連接字串可以讓您連接到報表設計師中的資料來源,以便取得建立報表所需的查詢結果。
定義資料來源連接時,請勿使用共用資料來源。 您不能在共用資料來源中使用資料來源運算式。 您必須為報表定義內嵌的資料來源。
分開指定認證與連接字串。 您可以使用預存認證、提示認證或整合式安全性。
加入報表參數,以指定資料來源。 針對參數值,您可以提供靜態可用的值清單 (在此情況下,可用的值應為可以搭配報表使用的資料來源),或者定義在執行階段擷取資料來源清單的查詢。
請確定資料來源清單共用相同的資料庫結構描述。 所有的報表設計都是從結構描述資訊開始。 如果用於定義報表的結構描述,和報表在執行階段使用的實際結構描述不符,報表可能不會執行。
發行報表之前,請以運算式取代靜態連接字串。 等到設計好報表之後,再以運算式取代靜態連接字串。 一旦使用運算式,就不能在報表設計師中執行查詢。 此外,[報表資料] 窗格中的欄位清單與 [參數] 清單也不會自動更新。