架构在sql server中的重要性是什么?

时间:2010-02-08 13:46:32

标签: sql-server schema

sql server中schema的重要性是什么?

这个架构对我有帮助吗? 出于安全原因这很重要吗?

4 个答案:

答案 0 :(得分:21)

是的, SQL模式的主要目的是 - 以促进安全管理:定义谁[哪些主体]可以访问[哪些数据库对象]。当架构停止直接绑定到所有者时,从SQL 2005开始,这一点变得特别容易。

架构的另一个用途是作为命名空间,这可以防止来自不同架构的对象之间发生名称冲突。
最初的用途是允许给定数据库的多个[交互式,即ad-hoc类型]用户创建自己的表或存储过程(或其他对象),而不必担心可能引入的类似命名对象的存在其他用户。
模式的类似命名空间的性质也可以用于计划的数据库设置,即当一个架构师以提供不同类型的访问的方式设计数据库结构时,以及实际上不同的行为 ,针对不同的用户组。

答案 1 :(得分:5)

他们对数据库进行分区以简化管理。 这是来自MSDN:

  

模式现在是一个独特的命名空间   独立存在的   创建它的数据库用户。其他   单词,架构只是一个容器   对象架构可以由。拥有   任何用户,其所有权是   转让。

以下是来自http://msdn.microsoft.com/en-us/library/ms190387.aspx

的网页

关于安全性,它使分配权限变得更加简单,因为您可以授予某人访问模式的权限,而不会将整个数据库暴露给它们。

答案 2 :(得分:2)

随着SQL Server 2005及更高版本的发布,模式发生了什么变化 - 我认为它是一个额外的安全层以及一个对象容器。

这是一个非常好的资源: http://msdn.microsoft.com/en-us/library/ms190387(SQL.90).aspx

答案 3 :(得分:2)

架构主要用于管理一个物理数据库中的多个逻辑实体。

架构提供了一种方便的 separate database users from database object owners 方式。它们使DBA能够保护数据库中的敏感对象,并将逻辑实体组合在一起。

在这些对象经常被应用程序用作单元的情况下,这尤其有利。例如,酒店管理系统可以分解为以下逻辑实体或模块:房间,酒吧/餐厅和厨房用品。

这些实体可以存储为三个独立的物理数据库。但是,使用模式,它们可以组合为一个物理数据库中的三个逻辑实体。这降低了管理三个独立数据库的管理复杂性。

Source