Sql-Server

如何在sql server的表級別和列級別向使用者授予Unmask權限?

  • February 27, 2019

如何授予使用者對一個特定表和表中一個特定列的取消屏蔽權限?

例如,如果在 table1 中,如果 column1 和 column2 被屏蔽,並且在 table2 中,如果 column3 和 column4 被屏蔽,對於使用者 usr1 和選擇訪問,如果我只想為 table1 和只有 column1 提供取消屏蔽,該怎麼做?

不幸的是,SQL Server 中的 UNMASK 權限沒有粒度,使用者要麼將所有被屏蔽的數據視為已屏蔽或未屏蔽,具體取決於他們是否授予了 UNMASK。

您可以創建一個具有 SELECT 和 UNMASK 的低權限使用者,並創建一個儲存過程,以便在模擬該使用者時僅將您所追求的列檢索到臨時表中。然後可以在恢復模擬後將這些結果連接回您的屏蔽表,以便從臨時表中檢索應該屏蔽的列和應該取消屏蔽的列。

引用自:https://dba.stackexchange.com/questions/230820