【发布时间】:2011-01-14 09:10:46
【问题描述】:
sql server中schema的重要性是什么?
这个架构对我有什么帮助? 出于安全原因,这很重要吗?
【问题讨论】:
标签: sql-server schema
sql server中schema的重要性是什么?
这个架构对我有什么帮助? 出于安全原因,这很重要吗?
【问题讨论】:
标签: sql-server schema
Schema主要用于管理一个物理数据库中的多个逻辑实体。
架构提供了一种方便的方式来separate database users from database object owners。它们使 DBA 能够保护数据库中的敏感对象,并将逻辑实体组合在一起。
这在应用程序经常将这些对象作为一个单元使用的情况下尤其有利。例如,酒店管理系统可以分解为以下逻辑实体或模块:房间、酒吧/餐厅和厨房用品。
这些实体可以存储为三个独立的物理数据库。但是,使用模式,它们可以组合为一个物理数据库中的三个逻辑实体。这降低了管理三个独立数据库的管理复杂性。
【讨论】:
是的,SQL 模式的主要目的是促进安全管理:定义谁 [哪些主体] 可以访问什么 [哪些数据库对象]。从 SQL 2005 开始,当模式不再直接与所有者绑定时,这变得特别容易。
架构的另一个用途是用作命名空间,这可以防止来自不同架构的对象之间的名称冲突。
最初的用途是允许给定数据库的多个 [交互式,即 ad-hoc 类] 用户创建自己的表或存储过程(或其他对象),而不必担心可能引入的类似命名对象的存在其他用户。
模式的类似命名空间的性质也可以用于计划的数据库设置中,即当单个架构师以提供不同类型的访问以及不同行为的方式设计数据库结构时, 用于不同的用户组。
【讨论】:
随着 SQL Server 2005 及更高版本的发布,架构发生了哪些变化 - 我认为它是一个额外的安全层以及一个对象容器。
这是一个很好的资源: http://msdn.microsoft.com/en-us/library/ms190387(SQL.90).aspx
【讨论】:
它们对您的数据库进行分区以简化管理。 这是来自 MSDN:
架构现在是一个不同的命名空间 独立于 创建它的数据库用户。其他 换句话说,模式只是一个容器 的对象。架构可以由 任何用户,其所有权是 可转让。
这是来自的页面:http://msdn.microsoft.com/en-us/library/ms190387.aspx
在安全性方面,它使分配权限变得更简单,因为您可以授予某人访问架构的权限,而无需将整个数据库暴露给他们。
【讨论】: