安全性概觀 (Integration Services)
SQL Server Integration Services 中的安全性是由數個階層所組成,以提供豐富且具彈性的安全性環境。 這些安全性階層包括使用數位簽章、套件屬性、SQL Server 資料庫角色,以及作業系統權限。 這些安全性功能中,絕大部分都屬於識別與存取控制的類別。
識別功能
您可以透過在封裝中實作識別功能,藉以達到下列目標:
確定您只會開啟和執行來自信任來源的封裝。
為確保您只開啟和執行來自信任來源的封裝,您必須先識別封裝的來源。 您可以使用憑證簽署封裝,藉以識別來源。 接著,當您開啟或執行套件時,可以讓 Integration Services 檢查數位簽章是否存在及其有效性。 如需詳細資訊,請參閱 Identify the Source of Packages with Digital Signatures(使用數位簽章識別封裝來源)。
存取控制功能
您可以透過在封裝中實作識別功能,藉以達到下列目標:
確定只有授權的使用者會開啟和執行封裝。
為確保只有授權的使用者會開啟和執行封裝,您必須控制下列資訊的存取:
控制封裝內容的存取,特別是敏感性資料。
控制儲存在 SQL Server 中之套件和封裝組態的存取。
控制封裝及相關檔案的存取,例如,儲存在檔案系統中的組態、記錄以及檢查點檔案。
控制 Integration Services 服務及其顯示在 SQL Server Management Studio 中之套件相關資訊的存取。
控制封裝內容的存取
為協助限制封裝內容的存取,您可以設定封裝的 ProtectionLevel 屬性來加密封裝。 您可以將此屬性設定為封裝所需的保護等級。 例如,在小組開發環境中,您可以使用僅處理封裝之小組成員知道的密碼來加密封裝。
當您設定封裝的 ProtectionLevel 屬性時,Integration Services 會自動偵測敏感性屬性,並根據指定的套件保護層級處理這些屬性。 例如,將封裝的 ProtectionLevel 屬性設定為以密碼加密機密資訊的層級。 對於此套件,Integration Services 會自動加密所有敏感性屬性的值,而且如果沒有提供正確的密碼,將不會顯示對應的資料。
如果屬性包含密碼或連接字串之類的資訊,或者如果屬性對應到變數或工作產生的 XML 節點,Integration Services 通常會將這些屬性視為敏感性。 對於 Integration Services 是否將屬性視為敏感性,取決於 Integration Services 元件 (例如連線管理員或工作) 的開發人員是否將該屬性指定為敏感性。 使用者無法將屬性新增至視為敏感性的屬性清單,也無法從中移除屬性。如果撰寫自訂工作、連線管理員或資料流程元件,您可以指定 Integration Services 應該將哪些屬性視為敏感性。
如需詳細資訊,請參閱 Access Control for Sensitive Data in Packages。
控制封裝的存取
您可以將 Integration Services 套件儲存至 SQL Server 執行個體中的 msdb 資料庫,或將其儲存為檔案系統中使用 .dtsx 副檔名的 XML 檔案。 如需詳細資訊,請參閱 Save Packages(儲存封裝)。
將封裝儲存到 msdb 資料庫
將封裝儲存至 msdb 資料庫有助於提供伺服器、資料庫和資料表層級的安全性。 在 msdb 資料庫中,Integration Services 套件是儲存在 sysssispackages 資料表中。 由於這些封裝會分別儲存到 msdb 資料庫中的 sysssispackages 和 sysdtspackages 資料表中,因此,當您備份 msdb 資料庫時,也會自動備份這些封裝。
儲存在 msdb 資料庫中的 SQL Server 套件也可以透過套用 Integration Services 資料庫層級角色來保護。 Integration Services 包含以下三個固定資料庫層級角色 db_ssisadmin、db_ssisltduser 和 db_ssisoperator,以控制套件的存取。 讀取器和寫入器角色可以與每個封裝相關聯。 您也可以定義要在 Integration Services 套件中使用的自訂資料庫層級角色。 這些角色只能在儲存至 SQL Server 執行個體中 msdb 資料庫的套件上實作。 如需詳細資訊,請參閱 Integration Services 角色 (SSIS 服務)。
將封裝儲存至檔案系統
如果您將封裝儲存到檔案系統,而非 msdb 資料庫中,請務必保護封裝檔案和包含封裝檔案的資料夾。
控制封裝所使用之檔案的存取
已設定為使用組態、檢查點和記錄的封裝會產生儲存在封裝之外的資訊。 此資訊可能是機密資訊,應該對其進行保護。 檢查點檔案只能儲存至檔案系統,但組態和記錄可以儲存至檔案系統或 SQL Server 資料庫中的資料表。 儲存至 SQL Server 的組態和記錄受到 SQL Server 安全性保護,但寫入檔案系統的資訊需要額外的安全性。
如需詳細資訊,請參閱 對封裝使用之檔案的存取權。
安全地儲存封裝組態
套件組態可以儲存至 SQL Server 資料庫中的資料表或儲存至檔案系統。
組態可以儲存至任何 SQL Server 資料庫,而不只是儲存至 msdb 資料庫。 因此,您可以指定哪些資料庫要當做封裝組態的儲存機制。 您也可以指定要包含組態的資料表名稱,Integration Services 會自動使用正確的結構建立資料表。 將組態儲存至資料表可以提供伺服器、資料庫和資料表層級的安全性。 另外,儲存至 SQL Server 的組態會在您備份資料庫時自動備份。
如果您將組態儲存在檔案系統,而非 SQL Server 中,請務必保護包含封裝組態檔的資料夾。
如需有關組態的詳細資訊,請參閱< Package Configurations>。
控制 Integration Services 服務的存取
SQL Server Management Studio 會使用 SQL Server 服務列出已儲存的封裝。 為防止未經授權的使用者檢視本機與遠端電腦上儲存之封裝的資訊,並藉以得知私人資訊,請限制對執行 SQL Server 服務之電腦的存取。
如需詳細資訊,請參閱 授予 Integration Services 服務的權限。
相關工作
下列清單所含的主題連結,將說明如何執行安全性相關特定工作。