Power BI 报表服务器中的 Always Encrypted

本文阐述了使用数据源类型 Microsoft SQL Server 和 Microsoft Azure SQL 数据库时 Power BI 报表服务器中的 Always Encrypted 支持。 有关 SQL Server 中的 Always Encrypted 功能的详细信息,请参阅 Always Encrypted 文章。

Always Encrypted 用户隔离

目前,如果用户可以访问报表,Power BI 报表服务器不会限制对报表中 Always Encrypted 列的访问。 因此,如果已通过列主密钥向服务器授予了对列加密密钥的访问权限,则用户可以访问他们可访问的报表的所有列。

Always Encrypted 列用法

密钥存储策略

存储 支持
Windows 证书存储
Azure Key Vault
下一代加密技术 (CNG)

证书存储和访问

需要访问证书的帐户为服务帐户。 证书应存储在本地计算机证书存储中。 有关详细信息,请参阅:

列加密策略

在 Power BI 报表服务器中,列加密策略可以是确定的策略,也可以是随机策略。 下表阐述了不同之处,具体取决于它所使用的策略。

用途 具有确定性 具有随机性
可以在查询结果中按原样读取,如 SELECT 语句。
可以用作查询中的分组依据实体。
还可用作聚合字段(COUNT 和 DISTINCT 除外)。 否,COUNT 和 DISTINCT 除外
可用作报表参数

详细了解确定性与随机性加密

参数用法

参数用法仅适用于确定性加密。

单值参数。 可以对 Always Encrypted 列使用单值参数。

多值参数。 不能对 Always Encrypted 列使用具有多个值的多值参数。

级联参数。 如果以下全部都为 true,则可以将级联参数用于 Always Encrypted

  • 所有 Always Encrypted 列都必须是具有确定性策略的 Always Encrypted。
  • 对 Always Encrypted 列使用的所有参数都是单值参数。
  • 所有 SQL 比较均使用等号 (=) 运算符。

数据类型支持

SQL 数据类型 支持读取字段 支持用作分组依据元素 支持的聚合(COUNT、DISTINCT、MAX、MIN、SUM 等) 支持使用参数通过等式进行筛选 注释
int COUNT、DISTINCT 是,作为整数
FLOAT COUNT、DISTINCT 是,作为浮点数
nvarchar COUNT、DISTINCT 是,作为文本 确定性加密必须使用具有字符列的 binary2 排序顺序的列排序规则。 有关详细信息,请参阅 SQL Server Always Encrypted 一文。
varchar COUNT、DISTINCT
Decimal COUNT、DISTINCT
numeric COUNT、DISTINCT
datetime COUNT、DISTINCT
datetime2 COUNT、DISTINCT 是,作为日期/时间 如果列没有毫秒精度(即,没有 datetime2(0)),则支持

聚合替代项

目前,唯一支持使用确定性 Always Encrypted 列的聚合是那些直接使用等号 (=) 运算符的聚合。 此 SQL Server 限制是由于 Always Encrypted 列的性质所致。 用户必须在报表中而不是在数据库中聚合。

连接字符串中的 Always Encrypted

需要在 SQL Server 数据源的连接字符串中启用 Always Encrypted。 详细了解在应用程序查询中启用 Always Encrypted

更多问题? 尝试咨询 Power BI 社区