为什么要为SQL Server中的安全对象创建单独的模式?

问题描述:

我确实想使用SQL Server 2016的行级安全特征,它说,在文档的最佳实践部分:为什么要为SQL Server中的安全对象创建单独的模式?

强烈建议以创建RLS对象单独规划(谓词功能和安全策略)。

此声明背后的原因是什么?什么是好处?

+1

Schema对数据库对象的_logical_分离非常有用。例如,您可能会有一堆核心表,它们都是dbo,它们负责管理您的核心业务功能(制造小部件)。现在,您可以创建一堆与您的核心业务功能无关的表,视图和特效,它们只处理行级安全性。如果你在他们自己的独立模式中创建它们,它们与对象浏览器中的其他对象在视觉上是分开的。在架构之前,这可能是通过在每个对象前加一个特殊代码来实现的。 –

+1

您可能会创建一个名为'admin'的模式来存放这些RLS对象以及任何其他管理函数,如日志记录,实用函数,sp_whoisactive等,或者您可能创建一个名为'rls'的模式,其中只包含rls对象。 _使用模式!!! _ - 它们会阻止您的数据库成为其功能没有明确区分的对象的大汤匙。它也是一种让你停下来思考物体的目的以及它们在大图中的位置的方法 –

+2

根据链接书的作者,“这是因为任何用户都应该能够访问这些功能,独立模式中的RLS对象可以很容易地管理这些权限“。链接:https://books.google.fr/books?id=COZODQAAQBAJ&pg=PA62&lpg=PA62&dq=It+is+highly+recommended+to+create+a+separate+schema+for+the+RLS+objects&source=bl&ots= 8Cdr_Ft_Ht&SIG = SVga1m681cbyGamqYJmwN1IjJEY&HL = EN&SA = X&VED = 0ahUKEwjbp6DXh7DTAhUML1AKHZvFCCwQ6AEINDAD#v = onepage&q&F =假 – Joe

它完全是出于组织原因 - 在一个地方(在一个模式下)具有所有安全增强功能非常有用。

好处是 - 你的数据库不会看起来凌乱。