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 檔案。 如需詳細資訊,請參閱 儲存套件。
將封裝儲存至 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 中,請務必保護包含封裝組態檔的資料夾。
如需組態的詳細資訊,請參閱 封裝組態。
控制 Integration Services 服務的存取
SQL Server Management Studio 會使用 SQL Server 服務來列出預存的套件。 若要防止未經授權的用戶檢視儲存在本機和遠端電腦上的套件相關信息,並藉此學習私人資訊,請限制對執行 SQL Server 服務的電腦存取。
如需詳細資訊,請參閱 Integration Services 服務的存取。
相關工作
下列清單包含主題的連結,說明如何執行與安全性相關的特定工作。