如何限制sql server用户对同一表的每个数据集的选择权限



我在一个表中有一个数据集如下,我正在寻找一种方法来限制基于列和数据集的选择权限,或者有一种方法可以从当前上下文中了解调用者堆栈。

表x:

  • Id年龄类型
  • 1 AGE1男性
  • 2 age2。女性
  • 3 Age3。男
  • 4 Age4。女性
  • 表杨:

  • Id大小
  • 1 Size1
  • 2 Size2
  • 3 size3
  • 4 size4

对于用户x:如果数据集是女性,我需要用户x读取表y和表x,如果数据集是女性,我需要用户x读取表y和表x而不需要年龄。

我的观点:男性查询

Select * from table y inner join table x on y.Id = x.id
Where x.Type = 'male' 

女性查询

Select y.*, x.id, x.type from table y inner join table x on y.Id = x.id
Where x.Type = 'female'

知道在上面的视图中,我需要授予对表y和x的访问权限,因为开发人员对相同的用户x使用相同的表x。

或者我可以使用角色,但需要知道是否从视图或表执行堆栈。

在Security Role中:如果呼唤的是女性观点,则在年龄上否认其他允许*

感谢

如果我理解正确的话想要你想要实现,我认为这就是解决方案:

select y.*, x.id, x.type, IIF(x.type = 'female', -1, x.age) age
from tabley y
join tablex x on y.Id = x.id

这将显示-1年龄为"女性"记录

相关内容

  • 没有找到相关文章

最新更新