sql server中schema的重要性是什么?
这个架构对我有帮助吗? 出于安全原因这很重要吗?
答案 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能够保护数据库中的敏感对象,并将逻辑实体组合在一起。
在这些对象经常被应用程序用作单元的情况下,这尤其有利。例如,酒店管理系统可以分解为以下逻辑实体或模块:房间,酒吧/餐厅和厨房用品。
这些实体可以存储为三个独立的物理数据库。但是,使用模式,它们可以组合为一个物理数据库中的三个逻辑实体。这降低了管理三个独立数据库的管理复杂性。