某些用户仅读取处于活动状态的记录(标志 1 或最新日期)的安全性



在DataWarehouse(SQL Server 2012(和某些表中,我想实现一个选项,其中某些用户只能看到最新的行(日期或标志(而不是整个历史记录。这可能吗?

VIEWs将是一个很好的用例...像这样的东西,使用窗口函数来查找"最新"记录。您还可以在具有内部联接的dateColumn上使用MAX()。只需填写分区部分<column1, column2>您想要对数据进行分组的内容。这是这方面的文档。

create view myView
as
;with cte as(
select
primaryKey
,column2
,dateColumn
,RN = row_number over (partition by <column1, column2> order by dateColumn desc)
from
YourTable)
select 
primaryKey
,column2
,dateColumn
from cte
where RN = 1

然后,对于您只想看到此数据的用户...您将明确授予他们查看权限。

grant select on myView to MyUserGroup

最新更新