如我所承诺 我以前的帖子 ,在本文中,我将向您展示如何在SQL Server 2016动态数据屏蔽(DDM)之上使用查询参数来利用Power BI Desktop模型。我还将非常简要地说明如何从AdventureWorksDW2016CTP3数据库的DimCustomer表上启用DDM。然后,我们将在DimCustomer表顶部创建带有查询参数的Power BI Desktop模型。您还将学习如何创建Power BI模板,以便将来在部署时使用它。
注意: 如果您想了解有关使用列表输出的信息 Power BI Desktop的“查询参数”中的内容可以看一下这些系列的下一篇文章“Power BI桌面查询参数,第3部分,列表输出 “.
用例
在里面 以前的帖子 我解释了如何使用查询参数创建动态数据源。您还学习了如何在过滤器行中使用查询参数。在这篇文章中,您将学习:
在SQL Server动态数据屏蔽(DDM)之上使用查询参数
Power BI模板中的查询参数
要求
就像 Power BI查询参数的第1部分 ,您需要满足以下要求才能关注此职位:
最新版本 Power BI桌面 (版本:2.34.4372.322 64位(2016年4月)或更高版本)
SQL服务器 2016(您可以免费下载SQL Server 2016 Developer Edition )
AdventureWorksDW
定义
我不会提供有关DDM的太多详细信息,因为您会发现很多信息 这里 。但是,为了让您稍微熟悉一下动态数据屏蔽,我将对其进行简要说明。
动态数据屏蔽(DDM)
动态数据屏蔽(DDM)是SQL Server 2016和Azure SQL数据库中可用的一项新功能。 DDM基本上是一种防止敏感数据暴露给非特权用户的方法。它是一项数据保护功能,可将敏感数据隐藏在查询的结果集中。您可以轻松地在现有表上启用DDM,也可以在要创建的新表上启用DDM。假设您的零售数据库中有两组用户。销售人员和销售经理。您有一张客户表,在此帖子中,它是AdventureWorksDW2016CTP3的DimCustomer。该表包含敏感数据,例如客户的电子邮件地址,电话号码及其居住地址。根据您的公司政策,“销售人员”组的成员应该不能查看敏感数据,但是应该可以查看所有其他数据。另一方面,“销售经理”组的成员可以查看所有客户的数据。为了防止销售人员看到敏感数据,您可以在DimCustomer表的敏感列上启用动态数据屏蔽。在这种情况下,当销售人员查询表时,他/她将看到被屏蔽的数据。例如,他看到 [email protected] 而不是 [email protected] .
在某些列上使用DDM创建表
很简单,只需将“屏蔽方式(功能=“屏蔽功能”) 列定义中的“”。所以它应该看起来像这样:
创建表Table_Name (ID int IDENTITY主键, Masked_Column1 varchar(100)屏蔽有(FUNCTION =‘Mask_Function’), Masked_Column2 varchar(100)屏蔽有(FUNCTION =‘Mask_Function’),
…
)
走
更改现有表并在所需列上启用DDM
如您所料,您必须使用“更改表 “ 然后 ”更改列 ”。您的T-SQL应该如下所示:
更改表 Table_Name 更改列 Column_Name1添加了屏蔽功能(功能=“屏蔽功能”);
走
更改表 Table_Name
更改列 Column_Name2添加掩码(功能=“掩码功能”);
走
有关更多信息,请参阅 MSDN .
Power BI模板
模板基本上是Power BI文件,它代表预定义Power BI Desktop的实例,该实例包括数据模型,报表,查询和参数的所有定义,但不包括任何数据。创建Power BI模板是简化现有模型部署的好方法。创建模板非常容易,您只需单击文件-> Export –>Power BI模板。我们将通过本文更详细地介绍这一点。
情境
要求您对客户的数据(AdventureWorksDW2016CTP3数据库上的DimCustomer)实施更高级别的安全性,以便只有特权用户才能看到客户的电子邮件,电话号码和居住地址。特权用户是“ SalesManager”数据库角色的所有成员。还要求您阻止“ SalesPerson”数据库角色查看敏感数据。但是,“ SalesManager”和“ SalesPerson”数据库角色的所有成员都可以查询DimCustomer表。用户不应具有SQL Server登录名。
继续阅读 “Power BI桌面查询参数,第2部分,动态数据屏蔽和查询参数” →