安全性概觀 (Integration Services)

SQL Server Integration Services 中的安全性包含幾層,提供了豐富且具彈性的安全性環境。這些安全層包括使用數位簽章、封裝屬性、SQL Server 資料庫角色,以及作業系統權限。這些安全性功能中,絕大部分都屬於識別與存取控制的類別。

識別功能

您可以透過在封裝中實作識別功能,藉以達到下列目標:

確定您只會開啟和執行來自信任來源的封裝

為確保您只開啟和執行來自信任來源的封裝,您必須先識別封裝的來源。您可以使用憑證簽署封裝,藉以識別來源。接著,當您開啟或執行封裝時,可以讓 Integration Services 檢查數位簽章是否存在及其有效性。如需詳細資訊,請參閱<使用數位簽章搭配封裝>。

存取控制功能

您可以透過在封裝中實作識別功能,藉以達到下列目標:

確定只有授權的使用者會開啟和執行封裝

為確保只有授權的使用者會開啟和執行封裝,您必須控制下列資訊的存取:

  • 控制封裝內容的存取,特別是敏感性資料。

  • 控制儲存在 SQL Server 中之封裝和封裝組態的存取。

  • 控制封裝及相關檔案的存取,例如,儲存在檔案系統中的組態、記錄以及檢查點檔案。

  • 針對服務顯示在 SQL Server Management Studio 中的封裝,控制 Integration Services 服務與相關資訊的存取。

控制封裝內容的存取

為協助限制封裝內容的存取,您可以設定封裝的 ProtectionLevel 屬性來加密封裝。您可以將此屬性設定為封裝所需的保護等級。例如,在小組開發環境中,您可以使用僅處理封裝之小組成員知道的密碼來加密封裝。

當您設定封裝的 ProtectionLevel 屬性時,Integration Services 會自動偵測機密屬性,並根據指定的封裝保護等級處理這些屬性。例如,將封裝的 ProtectionLevel 屬性設定為以密碼加密機密資訊的層級。對於此封裝,Integration Services 會自動加密所有機密屬性的值,而且如果沒有提供正確的密碼,將不會顯示對應的資料。

如果屬性包含密碼或連接字串之類的資訊,或者如果屬性對應到變數或工作產生的 XML 節點,Integration Services 通常會將這些屬性視為機密。對於 Integration Services 是否將屬性視為機密,取決於 Integration Services 元件 (例如,連接管理員或工作) 的開發人員是否將該屬性指定為機密。使用者無法將屬性加入到視為機密之屬性的清單,也無法從其中移除屬性。如果撰寫自訂工作、連接管理員或資料流程元件,您可以指定 Integration Services 應該將哪些屬性視為機密。

如需詳細資訊,請參閱<設定封裝的保護等級>。

控制封裝的存取

您可以將 Integration Services 封裝儲存到 SQL Server 執行個體中的 msdb 資料庫,或將其儲存為檔案系統中的 XML 檔案,且其副檔名為 .dtsx。如需詳細資訊,請參閱<儲存封裝>。

將封裝儲存到 msdb 資料庫

將封裝儲存至 msdb 資料庫有助於提供伺服器、資料庫和資料表層級的安全性。在 msdb 資料庫中,Integration Services 封裝會儲存在 sysssispackages 資料表中,而 SQL Server 2000 DTS 封裝則會儲存在 sysdtspackages 資料表中。由於這些封裝會分別儲存到 msdb 資料庫中的 sysssispackages 和 sysdtspackages 資料表中,因此,當您備份 msdb 資料庫時,也會自動備份這些封裝。

儲存在 msdb 資料庫中的 SQL Server 封裝也可以透過套用 Integration Services 資料庫層級角色來保護。Integration Services 包含三個用於控制封裝存取的固定資料庫層級角色:db_ssisadmin、db_ssisltduser 和 db_ssisoperator。讀取器和寫入器角色可以與每個封裝相關聯。您還可以定義要在 Integration Services 封裝或 SQL Server 2000 封裝中使用的自訂資料庫層級角色。這些角色只能在儲存至 SQL Server 執行個體中 msdb 資料庫的封裝上實作。如需詳細資訊,請參閱<使用 Integration Services 角色>。

重要事項重要事項

如需有關如何保護 DTS 封裝安全的重要資訊,請參閱<保護儲存在 SQL Server 中的 DTS 封裝安全>。

將封裝儲存至檔案系統

如果您將封裝儲存到檔案系統,而非 msdb 資料庫中,請務必保護封裝檔案和包含封裝檔案的資料夾。

控制封裝所使用之檔案的存取

已設定為使用組態、檢查點和記錄的封裝會產生儲存在封裝之外的資訊。此資訊可能是機密資訊,應該對其進行保護。檢查點檔案只能儲存至檔案系統,但組態和記錄檔可以儲存至檔案系統或 SQL Server 資料庫中的資料表。儲存至 SQL Server 的組態和記錄檔受到 SQL Server 安全性保護,但寫入檔案系統的資訊需要額外的安全性。

如需詳細資訊,請參閱<控制封裝所使用之檔案的存取>。

安全地儲存封裝組態

封裝組態可以儲存至 SQL Server 資料庫中的資料表或儲存至檔案系統。

組態可以儲存至任何 SQL Server 資料庫,而不只是儲存至 msdb 資料庫。因此,您可以指定哪些資料庫要當做封裝組態的儲存機制。您還可以指定要包含組態的資料表名稱,而 Integration Services 會自動使用正確的結構建立資料表。將組態儲存至資料表可以提供伺服器、資料庫和資料表層級的安全性。另外,儲存至 SQL Server 的組態會在您備份資料庫時自動備份。

如果您將組態儲存在檔案系統,而非 SQL Server 中,請務必保護包含封裝組態檔的資料夾。

如需有關組態的詳細資訊,請參閱<SSIS 封裝組態>。

控制 Integration Services 服務的存取

SQL Server Management Studio 會使用 SQL Server 服務列出已儲存的封裝。為防止未經授權的使用者檢視本機與遠端電腦上儲存之封裝的資訊,並藉以得知私人資訊,請限制對執行 SQL Server 服務之電腦的存取。

如需詳細資訊,請參閱<控制 Integration Services 服務的存取>。

Integration Services 圖示 (小) 掌握 Integration Services 的最新狀態

若要取得 Microsoft 的最新下載、文件、範例和影片以及社群中的選定解決方案,請瀏覽 MSDN 或 TechNet 上的 Integration Services 頁面:

若要得到這些更新的自動通知,請訂閱該頁面上所提供的 RSS 摘要。