云网站服务器_国内数据云存储_移动云数据库服务器主机-搜集站云

网站建设_备案二级域名_免费1年

小七 141 0

使用SAP HANA 2.0 SPS 03,我们将本机动态数据掩蔽功能扩展到了视图级别之外,大数据查询,因此您现在可以在SAP HANA中的表级别掩蔽数据。

快速更新:SAP HANA 2.0 SPS 01首次提供了动态数据掩蔽。最初,这个特性在视图级别提供了一个额外的访问控制层,您可以在这里了解更多。SAP HANA 2.0 SPS 03版本的新功能是我们扩展了此功能,因此您也可以在表级别动态屏蔽数据。

SAP HANA中有许多不同的动态数据屏蔽用例。一种是,云实,它可以为表或视图提供额外的保护,以保护敏感或机密数据不被具有广泛访问权限的高级用户访问。另一个用例是,您可以利用动态数据掩蔽来选择性地掩蔽列中的敏感信息,如社保号码或信用卡信息,这些信息来自不应访问完整信息的用户。

在我们详细介绍SAP HANA中数据掩蔽的工作原理之前,我想强调一下动态数据掩蔽如何适应更广泛的SAP HANA安全形势。saphana有一个完整的安全信息访问框架,屏蔽只是其中的一部分。在上图中,您可以看到我们提供了对身份验证和用户管理、授权管理、加密、审核和数据匿名化的支持。使用哪种工具取决于您提出的问题以及您希望保护数据免受哪些威胁。

让我们以两个经常混淆的功能为例,数据屏蔽和数据匿名。如果您考虑数据匿名化,目标是允许您在不暴露单个秘密的情况下对整个数据集启用分析。另一方面,数据掩蔽在这种情况下是不够的,因为您仍然能够潜在地将数据点追溯到特定的个人。数据掩蔽的目标是有选择地或完全地隐藏表和视图中的敏感信息,以减少敏感数据暴露的信息。在这样的场景中使用数据匿名化是不合适的,因为单独的行级数据变得毫无意义,并且数据只有聚合的值。如您所见,不同情况下的用例非常不同。

基本上,tnrt新零售企业应用中心,动态表掩蔽特性与动态视图掩蔽特性的工作方式相同。动态数据掩蔽功能完全集成到SAP HANA中的授权框架中。是否有人会看到屏蔽的数据取决于他们是否拥有SAP HANA中的unmaked特权以及对该视图或表执行选择的权限。表级别的动态数据屏蔽不会影响存储的数据,而是影响用户向SAP HANA发送请求时显示的内容。这意味着拥有足够权限的用户执行的任何操作都与以前一样工作,而没有足够权限的用户无法使用屏蔽数据执行计算。

SAP HANA安全指南提供了大量关于如何在表和视图级别配置动态数据屏蔽的文档。在下一节中,我将带您通过几个示例了解如何将掩码定义添加到现有表中,在创建表时生成掩码定义,并解释如何将掩码表达式定义为单独的UDF,以便重用和捕获更复杂的逻辑。我还将与您分享如何获得数据流的概述以及掩码定义实施的潜在操作。

将掩码定义添加到现有表

让我们了解将掩码定义添加到表的过程。例如,假设SAP HANA中有一个名为DATA的现有表_所有者.帐单里面有信用卡信息。我们可能希望支持用户只能看到信用卡号的最后四位数字。为了实现这一点,我们需要执行以下命令在表上添加掩码定义:

ALTER table DATA_所有者.帐单添加掩码(card|u number USING'*****-*****-*****-'| | RIGHT(card|u number,4));

现在,当您尝试在表上执行选择时,具有unmaked特权的用户(当然还有表)将能够看到未屏蔽的数据,多线云主机,而没有此权限的用户将无法看到完整的信用卡号,只有我们在表中定义的最后四位。

在创建表时添加掩码定义

除了向现有表添加掩码定义之外,也可以在创建表时定义遮罩定义。过程非常相似。让我们从上一个例子中的数据表_所有者.帐单. 我们可以使用下面的SQL语句来创建新表,并一次性添加掩码定义:

创建表数据_所有者.帐单(名称nvarchar(256),卡号varchar(19))

带掩码(卡号使用"*****-*****-*****-"| |右(卡号,4));

与上述类似,现在在表上查看屏蔽数据的用户将取决于他们是否具有该表的"未屏蔽"权限和"选择"权限。

将屏蔽表达式定义为单独的用户定义函数(UDF)

在某些情况下,您可能希望对数据库中的多个表使用单个屏蔽表达式。也许您有几个不同的存储信用卡数据的表,您希望这些数据以相同的方式被屏蔽。在这种情况下,您可以使用在单独的UDF中定义的掩码定义。例如:

创建函数数据_OWNER.MASK\卡号(card_number varchar(19))

返回output varchar(19)LANGUAGE SQLSCRIPT作为

BEGIN

output:='*****-*****-*****-'| | RIGHT(card_number,4);

END;

定义此自定义项后,您可以创建多个调用它的表:

创建表数据_所有者.帐单(名称nvarchar(256),卡号varchar(19))

带掩码(卡号使用数据)_OWNER.MASK\卡号(卡号);

创建表数据_业主信用卡(名称nvarchar(256),卡号varchar(19))

带掩码(卡号使用数据)_OWNER.MASK\卡号(卡号);