本文詳細說明 Power BI Report Server 在使用 Microsoft SQL Server 和 Microsoft Azure SQL Database 作為資料來源類型時的「持續加密」功能支援。 欲了解更多關於 SQL Server 中 Always Encrypted 功能,請參閱 Always Encrypted 文章。
永遠加密的使用者隔離
目前,如果使用者有報告存取權,Power BI 報告伺服器不會限制對報告中「永遠加密」欄位的存取。 因此,如果伺服器透過欄位主金鑰獲得欄位加密金鑰的存取權,使用者就能存取他們能存取的報告欄位。
始終加密欄位使用
關鍵儲存策略
| 儲存體 | 支持 |
|---|---|
| Windows 憑證存放區 | Yes |
| Azure Key Vault | 否 |
| 密碼學下一代(CNG) | 否 |
憑證儲存與存取
需要存取憑證的帳號是服務帳號。 憑證應儲存在當地的電腦憑證庫中。 如需詳細資訊,請參閱:
- 設定報表伺服器服務帳號 (組態管理員)
- 在 SQL Server 文章「建立並儲存 Always Encrypted 的欄位主金鑰」的讓應用程式與使用者可以存取憑證部分。
欄位加密策略
在 Power BI 報表伺服器中,欄位加密策略可以是 確定性的 或 隨機化的。 下表根據所採用的策略,詳細說明了差異。
| 使用 | 具決定性 | 隨機化 |
|---|---|---|
| 可以直接讀取查詢結果,例如 SELECT 語句。 | Yes | Yes |
| 可作為查詢中的「群組依據」實體使用。 | Yes | 否 |
| 可用作聚合欄位,但 COUNT 和 DISTINCT 除外。 | 沒有,除了 COUNT 和 DISTINCT。 | 否 |
| 可用作報告參數 | Yes | 否 |
閱讀更多關於 確定性加密與隨機加密的資訊。
參數使用方式
參數使用僅適用於確定性加密。
單一值參數。 你可以用單一值參數來對付 Always Encrypted 欄位。
多值參數。 你不能使用具有多個值的多值參數於 Always Encrypted 欄位。
串聯參數。 如果以下 條件皆 成立,你可以用 Always Encrypted 的串接參數:
- 所有「始終加密」欄位都必須透過確定性策略加密。
- 所有用於「始終加密」欄位的參數皆為單一值參數。
- 所有 SQL 比較皆使用 Equals (=) 運算子。
資料型別支援
| SQL 資料型別 | 支援讀取欄位 | 作為群組元素的支援使用 | 支援的聚合(COUNT、DISTINCT、MAX、MIN、SUM 等) | 支援透過參數進行等值篩選 | 註釋 |
|---|---|---|---|---|---|
| int | Yes | Yes | 計數,不同 | 是的,作為整數 | |
| float | Yes | Yes | 計數,不同 | 是的,作為浮動 | |
| NVARCHAR | Yes | Yes | 計數,不同 | 是的,以文字形式 | 確定性加密必須針對字元資料行使用 binary2 排序次序的資料行定序。 詳情請參閱 SQL Server Always Encrypted 文章。 |
| 瓦查爾 | Yes | Yes | 計數,不同 | 否 | |
| 十進位 | Yes | Yes | 計數,不同 | 否 | |
| 數字的 | Yes | Yes | 計數,不同 | 否 | |
| 日期時間 | Yes | Yes | 計數,不同 | 否 | |
| datetime2 | Yes | Yes | 計數,不同 | 是的,日期/時間 | 若欄位沒有毫秒精度(換句話說,沒有 datetime2(0)),則會支援。 |
聚合替代方案
目前唯一支援針對確定性「永遠加密」欄位的聚合,是直接使用 Equals (=) 運算子的聚合。 SQL Server 的限制源自於「始終加密」欄位的特性。 使用者必須在報告內彙整,而非資料庫中。
在連線字串中啟用「永遠加密」
你需要在 SQL Server 資料來源的連線字串啟用 Always Encrypted。 閱讀更多關於在 應用程式查詢中啟用 Always Encrypted 的資訊。
相關內容
- Always Encrypted 在 SQL Server 和 Azure SQL 資料庫中
其他問題嗎? 試著向 Power BI 社群提問