如何授予用户对一个特定表和表中一个特定列的取消屏蔽权限?
例如,如果在 table1 中,如果 column1 和 column2 被屏蔽,并且在 table2 中,如果 column3 和 column4 被屏蔽,对于具有选择访问权限的用户 usr1,如果我只想为 table1 和只有 column1 提供取消屏蔽,该怎么做?
如何授予用户对一个特定表和表中一个特定列的取消屏蔽权限?
例如,如果在 table1 中,如果 column1 和 column2 被屏蔽,并且在 table2 中,如果 column3 和 column4 被屏蔽,对于具有选择访问权限的用户 usr1,如果我只想为 table1 和只有 column1 提供取消屏蔽,该怎么做?
不幸的是,SQL Server 中的 UNMASK 权限没有粒度,用户要么将所有屏蔽数据视为已屏蔽或未屏蔽,具体取决于他们是否授予了 UNMASK。
您可以创建一个具有 SELECT 和 UNMASK 的低权限用户,并创建一个存储过程,以便在模拟该用户时仅将您所追求的列检索到临时表中。然后可以在恢复模拟后将这些结果连接回您的屏蔽表,以便从临时表中检索应该屏蔽的列和应该取消屏蔽的列。