SQL Server 架构的用途

Posted

技术标签:

【中文标题】SQL Server 架构的用途【英文标题】:Uses for SQL Server schemas 【发布时间】:2010-11-10 19:58:20 【问题描述】:

在我的印象中,模式主要用于组织 SQL Server 数据库中的表、视图、存储过程等。模式是否发挥更大的作用(可能在数据库安全、存储等方面)?

澄清一下:我指的是“对象”模式。很抱歉造成混乱。

谢谢。

【问题讨论】:

这非常接近这个问题:***.com/questions/529142/… 这个问题的答案不是很令人满意。让我们看看这个会发生什么。 你的答案也不是@Robert Harvey,我认为你在混合概念。 “数据库结构描述”中的架构与用于将其他对象(例如表)组合在一起的 SQL Server 架构对象。 微软将其称为“对象架构”。 Andriyev 链接的文章涵盖了组织/分组/命名用途和更具体的安全用途。 【参考方案1】:

架构允许您对表进行分组以确保安全性和/或概念上的健全。该组可以是部门、应用程序的特定区域、Active Directory 组、数据库角色等。

如果您有一组只有 HR 安全组需要访问的表,您可以在 HR 架构下创建它们并从那里强制执行权限。

如果您有一个应用程序,您可能希望为销售、内容和产品创建架构,以分隔应用程序的各个部分。

【讨论】:

【参考方案2】:

查看此链接http://technet.microsoft.com/en-us/library/dd283095.aspx。它涵盖了“在 SQL Server 中使用架构”部分下的安全方面。

干杯

【讨论】:

好的。我不是唯一一个对这个问题有不同理解的人。我敢打赌,这就是问题所在。 安全性当然是它的一个方面,但是在数据库中以一种合乎逻辑的方式来组织对象是另一个方面。我参与过许多包含数千个对象(过程、表、视图)的项目,将它们组织成模式总是让生活更轻松。【参考方案3】:

从 OO 的角度来看,数据库模式可以被认为是一个类;数据库本身代表该类的对象实例。

同样的含义也适用于这个类比(例如:安全性、内存使用等)

【讨论】:

他专门指的是 SQL Server 中的 SCHEMA 结构,而不是通常指的数据库模式,即表描述和约束。 我认为 SQL Server 数据库对象模式更类似于 OO 中的命名空间。 我衷心希望 OO 尽可能远离 SQL,谢谢。

以上是关于SQL Server 架构的用途的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 架构命名约定

SQL Server 角色、架构、用户

在 Visual Studio 和 SQL Server 中按架构名称比较架构

重命名 SQL Server 架构

SQL Server-数据库架构和对象定义数据完整性

SQL Server Compact - 架构管理