如何使用模式使用行级保护我的表?

时间:2017-01-22 22:31:50

标签: sql sql-server sql-server-2012 row-level-security

我正在尝试对我的数据模型实施行级安全权限。因为我使用的是SQL Server 2012,所以我必须使用与视图相关联的视图和用户名来执行此操作。 (这不是重点,但对于那些感兴趣的人,我粘贴了帮助我获得理想效果的链接 http://www.sqlservercentral.com/articles/Stairway+Series/128866/)。

我决定使用模式权限限制访问权限。一切正常,但不是一个方案。我的观点包括在我限制的几个方案中选择表格。但是,即使我禁用了对问题的模式访问(让我们说它是" CDN"方案),我也无法从我的视图引用到CDN方案中的表。我发现这是架构类型"数据库角色"并且所有者是CDN。如果我将CDN计划的所有者更改为" dbo"这是"用户"类型,我可以在我的视图中找到架构。

我不知道这些类型之间的区别,但我不想改变CDN的所有者。有人能给我解决这个问题的任何线索吗? 提前致谢。 微米。

我发现在角色> CDN的数据库角色的常规标签中我从我的视图中添加了模式,我可以执行我的视图。但我不知道这种变化是否安全?

我可能没有正确定义问题。我将重新定义它:

  1. 我的目标是限制访问数据库中的所有表格和视图等,但" Qlik"架构。

  2. 我的观点(在Qlik模式中)连接到不同的模式,即CDN,TBC,dbo (Qlik.MyCostumersView - 示例视图):

    SELECT a.CustId, a.Name, a.City, a.CreditLimit, a.SocialSecurityNumber, a.FelonyConvictions, a.UserAccess FROM CDN.Customer a, TBC.Struktura b, dbo.MPKDzial
    
  3. 在任何情况下我都无法实现目标。

    我发现我可以管理具有相同欠款的架构之间的访问权限。但是,CDN将CDN作为所有者。当我在我的其他模式中将所有权更改为CDN时,它很好,不幸的是除了使用dbo模式(dbo所有者)。

    Schemas and ownerships - picture

0 个答案:

没有答案