SQL Server 2008中的架构.doc_第1页
SQL Server 2008中的架构.doc_第2页
SQL Server 2008中的架构.doc_第3页
SQL Server 2008中的架构.doc_第4页
SQL Server 2008中的架构.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

架构是指包含表、视图、过程等的容器。它位于数据库内部,而数据库位于服务器内部。这些实体就像嵌套框放置在一起。服务器是最外面的框,而架构是最里面的框。架构包含下面列出的所有安全对象,但是它不包含其他框。必须位于架构内部的安全对象 类 类型TYPEXML 架构集合XML SCHEMA COLLECTION表OBJECT视图OBJECT过程OBJECT函数OBJECT聚合函数OBJECT约束OBJECT同义词OBJECT队列OBJECT统计信息OBJECT特定架构中的每个安全对象都必须有唯一的名称。架构中安全对象的完全指定名称包括此安全对象所在的架构的名称。因此,架构也是命名空间。 注意:在 SQL Server 2000 和早期版本中,数据库可以包含一个名为“架构”的实体,但此实体实际上是数据库用户。在 SQL Server 2005 和 SQL Server 2008 中,架构既是一个容器,又是一个命名空间。*安全对象是 SQL Server 数据库引擎授权系统控制对其进行访问的资源。通过创建可以为自己设置安全性的名为“范围”的嵌套层次结构,可以将某些安全对象包含在其他安全对象中。安全对象范围有服务器、数据库和架构。 安全对象范围:服务器包含以下安全对象: 端点 登录帐户 数据库 安全对象范围:数据库包含以下安全对象: 用户 角色 应用程序角色 程序集 消息类型 路由 服务 远程服务绑定 全文目录 证书 非对称密钥 对称密钥 约定 架构 安全对象范围:架构包含以下安全对象: 类型 XML 架构集合 对象对象下面是对象类的成员: 聚合 约束 函数 过程 队列 统计信息 同义词 表 视图*在 SQL Server 2005 中,架构行为已更改。架构不再等效于数据库用户;现在,每个架构都是独立于创建它的数据库用户存在的不同命名空间。也就是说,架构只是对象的容器。任何用户都可以拥有架构,并且架构所有权可以转移。 新行为所有权与架构的分离具有重要的意义: 架构的所有权和架构范围内的安全对象可以转移。有关详细信息,请参阅 ALTER AUTHORIZATION (Transact-SQL)。 对象可以在架构之间移动。有关详细信息,请参阅 ALTER SCHEMA (Transact-SQL)。 单个架构可以包含由多个数据库用户拥有的对象。 多个数据库用户可以共享单个默认架构。 与早期版本相比,对架构及架构中包含的安全对象的权限的管理更加精细。有关详细信息,请参阅 GRANT 架构权限 (Transact-SQL) 和 GRANT 对象权限 (Transact-SQL)。 架构可以由任何数据库主体拥有。这包括角色和应用程序角色。 可以删除数据库用户而不删除相应架构中的对象。 如果为 SQL Server 早期版本编写的代码假定架构等效于数据库用户,这些代码可能会返回错误的结果。 为 SQL Server 早期版本设计的目录视图可能会返回错误的结果。这包括 sysobjects。*默认架构为了解析不完全限定的安全对象名称,SQL Server 2000 使用名称解析来检查执行调用的数据库用户所拥有的架构和 dbo 所拥有的架构。从 SQL Server 2005 开始,每个用户都拥有一个默认架构。可以使用 CREATE USER 或 ALTER USER 的 DEFAULT_SCHEMA 选项设置和更改默认架构。如果 DEFAULT_SCHEMA 保持未定义状态,则用户将以 dbo 作为其默认架构。可以将 DEFAULT_SCHEMA 设置为数据库中当前不存在的架构。因此,可以在创建架构之前将 DEFAULT_SCHEMA 分配给用户。不能为映射到 Windows 组、证书或非对称密钥的用户指定 DEFAULT_SCHEMA。*create login sc with password=hnufesc,DEFAULT_DATABASE = studentuse studentcreate user sc for login scgrant select on schema:student to sc -用户sc拥有对架构student中所有安全对象的select权限revoke select on schema:student from sc -撤销用户sc对架构student中所有安全对象拥有的select权限alter schema dbo transfer student.x -将student架构中的安全对象x移入dbo架构中alter user sc with default_schema=student -将用户sc的默认架构改为studentalter authorization on schema:student to sc -将student架构的所有者改为sc,sc可以对student架构中的数据进行查询、插入、修改和删除*dbo是默认用户也是架构,dbo作为架构是为了更好的与2000兼容,在2000中DataBaseName.dbo.TableName解释为:数据库名.用户名.表名,在2005中DataBaseName.dbo.TableName解释为:数据库名.架构名.表名,这样2000中的代码移植到2005中就不会报错(dbo在2005中是默认的架构,创建表时,如不指定架构,则默认为属于dbo为个架构)。*问题:指定的架构名称dbo 不存在,或者您没有使用该名称的权限。原因:缺少权限,需要增加数据角色db_owner(dbo用户的角色)。方法:安全性-登陆名-选择你的用户名-属性-左边的用户映射-上面选择你要映射的数据库-下马数据库角色成员身份选择db_owner和public。*新目录视图从 SQL Server 2005 开始,架构是在元数据中反映的显式实体;因此,架构只能有一个所有者,但一个用户可以不拥有架构,也可以拥有多个架构。这种复杂关系并未在 SQL Server 2000 系统表中反映,因此 SQL Server 2005 引入了新的目录视图,以准确反映新的元数据。下表显示了 SQL Server 2000 系统表与其 SQL Server 2005 等效项和更高版本的目录视图之间的映射。SQL Server 2000 系统表 SQL Server 2005 及更高版本的目录视图 sysuserssys.d

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论