如何使用原始值而不是掩码值将修改后的掩码值保存到 azure SQL 数据库中?
How to save modified mask value into azure SQL database with original value but not an mask value?
我在当前项目中使用下面的这个实现了动态数据屏蔽概念 link。
https://docs.microsoft.com/en-us/azure/sql-database/sql-database-dynamic-data-masking-get-started
我为 SSN 字段添加了掩码,然后我只能看到像 XXXX-XX-0001 这样的 SSN 掩码数据。但是每当我修改 SSN 归档 (XXXX-XX-0002) 并保存到天蓝色 SQL 数据库时,屏蔽数据将被保存而不是原始 SSN 值。
如何将更新后的掩码值与原始值一起保存到 Azure SQL 数据库中?
正如这位官方 document 关于 DDM 所说:
Dynamic data masking helps prevent unauthorized access to sensitive data by enabling customers to designate how much of the sensitive data to reveal with minimal impact on the application layer. It’s a policy-based security feature that hides the sensitive data in the result set of a query over designated database fields, while the data in the database is not changed.
动态数据屏蔽策略
SQL users excluded from masking - A set of SQL users or AAD identities that will get unmasked data in the SQL query results. Note that users with administrator privileges will always be excluded from masking, and will see the original data without any mask.
动态数据屏蔽的目的是限制敏感数据的暴露,防止不应访问数据的用户查看数据。
根据您的描述,我假设您的 SQL 用户具有 写入权限 但没有 UNMASK 权限。此时,当您将 SSN 字段更新到 Azure SQL 数据库时,您的 SSN 字段将包含静态屏蔽的数据。
要授予查看未屏蔽数据的权限,您可以向 SQL 用户授予 UNMASK 权限,如下所示:
GRANT UNMASK TO TestUser;
EXECUTE AS USER = 'TestUser';
SELECT * FROM Membership;
REVERT;
-- Removing the UNMASK permission
REVOKE UNMASK TO TestUser;
或者您可以登录到 Azure 门户,键入应从屏蔽中排除的 SQL 用户或 AAD 身份,如下所示:
综上所述,由于您使用 DDM 隐藏查询结果中的敏感数据,因此最好不要授予用户 写入权限 (db_datawriter 数据库角色)。您可以按照此 tutorial. Also, you could refer to this tutorial 中关于配置和自定义 SQL Azure 动态数据屏蔽的 "Best Practices and Common Use Cases" 部分进行操作。
我在当前项目中使用下面的这个实现了动态数据屏蔽概念 link。
https://docs.microsoft.com/en-us/azure/sql-database/sql-database-dynamic-data-masking-get-started
我为 SSN 字段添加了掩码,然后我只能看到像 XXXX-XX-0001 这样的 SSN 掩码数据。但是每当我修改 SSN 归档 (XXXX-XX-0002) 并保存到天蓝色 SQL 数据库时,屏蔽数据将被保存而不是原始 SSN 值。
如何将更新后的掩码值与原始值一起保存到 Azure SQL 数据库中?
正如这位官方 document 关于 DDM 所说:
Dynamic data masking helps prevent unauthorized access to sensitive data by enabling customers to designate how much of the sensitive data to reveal with minimal impact on the application layer. It’s a policy-based security feature that hides the sensitive data in the result set of a query over designated database fields, while the data in the database is not changed.
动态数据屏蔽策略
SQL users excluded from masking - A set of SQL users or AAD identities that will get unmasked data in the SQL query results. Note that users with administrator privileges will always be excluded from masking, and will see the original data without any mask.
动态数据屏蔽的目的是限制敏感数据的暴露,防止不应访问数据的用户查看数据。
根据您的描述,我假设您的 SQL 用户具有 写入权限 但没有 UNMASK 权限。此时,当您将 SSN 字段更新到 Azure SQL 数据库时,您的 SSN 字段将包含静态屏蔽的数据。
要授予查看未屏蔽数据的权限,您可以向 SQL 用户授予 UNMASK 权限,如下所示:
GRANT UNMASK TO TestUser;
EXECUTE AS USER = 'TestUser';
SELECT * FROM Membership;
REVERT;
-- Removing the UNMASK permission
REVOKE UNMASK TO TestUser;
或者您可以登录到 Azure 门户,键入应从屏蔽中排除的 SQL 用户或 AAD 身份,如下所示:
综上所述,由于您使用 DDM 隐藏查询结果中的敏感数据,因此最好不要授予用户 写入权限 (db_datawriter 数据库角色)。您可以按照此 tutorial. Also, you could refer to this tutorial 中关于配置和自定义 SQL Azure 动态数据屏蔽的 "Best Practices and Common Use Cases" 部分进行操作。