`
Ben*liu
  • 浏览: 6911 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

SQL SERVER中架构的理解

阅读更多
转载地址:http://blog.sina.com.cn/s/blog_58de85690100aqoo.html~type=v5_one&label=rela_prevarticle
  好东西给大家分享一下! 嘿嘿!
----------------------------------------------------------------------
  在sqlserver 2005中,可能大家在工作或学习的时候会经常发现这样一些问题,你使用一个账户在数据库中创建了一张表,却发现你自己创建的表却没有修改和查询的权限,这是一件很郁闷的事情,在sqlserver2000中却不存在这样的问题,那为什么在2005中会出现这样的事情,这样的设置可以带来哪些好处?其实导致这一问题的原因主要在于2005中多了一个新的概念—架构。

    首先我们来看一下msdn中对架构的定义:架构(Schema)是形成单个命名空间的数据库实体的集合。命名空间是一个集合,其中每个元素的名称都是唯一的。在这里,我们可以将架构看成一个存放数据库中对象的一个容器。

架构实际上在sqlserver2000中就已经存在,当我们使用查询分析器去查询一个表的时候,一个完整的表的名称应该包括服务器名.数据库名.用户名.对象名,而在sqlserver2005中一个表的完全限定名称应该为服务器名.数据库名.架构名.对象名

在2000中,假如有一个账户tt在test数据库中创建了一张表table1的时候,在服务器上对查询的语句应为select * from test.tt.table1,也就是说,在sqlserver 2000中一张表所属的架构默认就是表的创建者的登录名称,用户可以和修改他所创建的所有数据库对象。但在2005中已经将用户和其创建对象所属架构的关联取消了,而加入了一个全新的架构体系,这样做的优点主要在于下面几个方面:

1.  多个用户可以通过角色(role)或组(Windows groups)成员关系拥有同一个架构。在2005中,每个数据库中的固定数据库角色都有一个属于自己的架构,如果我们创建一个表,给它指定的架构名称为db_ddladmin,那么任何一个属于db_ddladmin中的用户都是可以去查询、修改和删除属于这个架构中的表,但是其它不属于这个组的用户是不行的,有一点必须注意,db_dbdatareader组的成员可以查看所有数据库中的表,db_dbdatawriter组成员可以修改所有数据库中的表,db_owner组成员可以对数据库所有表进行所有操作,这几个组的成员可以通过角色获取到在数据库中的特殊权限。

2.  删除数据库用户变得极为简单。在 SQL Server 2000 中,用户(User)和架构是隐含关联的,即每个用户拥有与其同名的架构。因此要删除一个用户,必须先删除或修改这个用户所拥有的所有数据库对象,就比如一个员工要离职要删除他的账户的时候,还得将他所创建的表和视图等都删除,影响过大。将架构和对象者分离后就不在存在这样的问题,删除用户的时候,对数据库对象是没有任何影响的。

3. 共享缺省架构使得开发人员可以为特定的应用程序创建特定的架构来存放对象,这比仅使用管理员架构(DBO schema)要好。

4. 在架构和架构所包含的对象上设置权限(permissions)比以前的版本拥有更高的可管理性。

5. 区分不同业务处理需要的对象,例如,我们可以把公共的表设置成pub的架构,把销售相关的设置为sales,这样管理和访问起来更容易.

    大多数用户在创建对象的时候习惯直接输入对象名而将对象的架构名称省略,在2005中,会给用户创建的这样的表加上一个缺省的架构,用户如果没有对自己的默认架构做设置,那缺省架构就是dbo,也就是说,如果一个db_ddladmin的成员在数据库中创建一个没有加上架构名称的表,这个表在数据库中的完整名称应该是dbo.表名,创建者在数据库中如果不是属于其它特殊组的成员,是不能对自己创建的表进行任何修改和查询的,那就相当于把自己赚的钱存进了别人的银行卡,自己却取不出来。
分享到:
评论

相关推荐

    PHP与SQLServer2000架构WindowsWeb数据库实务

    总的来说,《PHP与SQL Server 2000架构Windows Web数据库实务》是一本全面介绍如何在Windows环境下使用PHP与SQL Server 2000进行Web开发的实用指南,对于想要深入理解和掌握这一领域的开发者来说,具有很高的参考...

    SQL server 2005体系架构,全面的分析MSSQL的构成

    SQL Server 2005的体系架构是其高效运行的基础,深入理解这一架构对于数据库开发人员来说至关重要。 首先,SQL Server 2005的体系架构主要分为以下几个核心组件: 1. **数据库引擎**:这是SQL Server的核心,负责...

    PHP与SQL Server 2000架构Windows Web数据库实务(PDG).rar

    3. SQL Server 2000管理:理解SQL Server的架构,如数据库、表、索引、视图等基本概念,学会创建和管理数据库对象,以及使用T-SQL进行数据操作。 4. 面向对象编程:PHP5.0引入了完整的面向对象特性,包括类、对象、...

    PHP与SQL Server 2000架构Windows Web数据库实务(PDG)

    《PHP与SQL Server 2000架构Windows Web数据库实务》是一本专注于使用PHP编程语言与Microsoft SQL Server 2000相结合,构建高效、稳定且功能丰富的Windows环境下的Web数据库应用的专业教程。PHP(Hypertext ...

    SQL Server 内核架构剖析

    在深入探讨SQL Server的内核架构之前,了解其历史背景和发展历程对于理解其设计理念和技术选择至关重要。 - **1999年的数据库业界背景**:1999年,Oracle已经发布了Oracle 8i版本,引入了许多先进特性,比如使用...

    ASP与SQL SERVER网站架构

    在"ASP与SQL Server网站架设"的压缩包中,"ebookdown.net说明.txt"可能是关于如何部署和配置这种网站架构的指南,而"ASP与SQL Server网站架设"可能是包含详细步骤和示例的教程或电子书。学习这个主题,你将深入理解...

    PHP与SQL Server 2000架构Windows Web数据库实务

    5. **错误处理和调试**:在PHP和SQL Server 2000的交互中,理解如何处理错误和异常,以及使用日志记录工具进行调试,对于优化代码和确保系统稳定性至关重要。 6. **性能优化**:学习如何优化SQL查询,使用存储过程...

    SQL Server 中文帮助文档 chm格式

    1. **SQL Server架构**:了解SQL Server的核心组件,如数据库引擎、Analysis Services、Integration Services、Reporting Services等,以及它们在数据处理中的作用。 2. **安装与配置**:包括SQL Server的安装步骤...

    Sql Server 2014 安装包

    - 学习SQL Server,你需要掌握T-SQL语言,理解数据库架构设计,熟悉SQL Server的安全机制和备份恢复策略。 - 对于开发和管理员,理解并运用SQL Server的性能调优工具和技巧至关重要,如查询分析器、动态管理视图...

    如何将SQL Server 2005升级到SQL Server 2008

    在将SQL Server 2005升级至SQL Server 2008的过程中,涉及的知识及技巧涵盖了从理解新版本特性到优化、安全、开发、维护高可用性数据库、数据仓库构建和报告服务使用的广泛范围。以下将详细介绍升级过程中需要注意的...

    深入解析sqlserver 2008 Microsoft SQL Server 2008 Internals

    本书不仅适合数据库管理员、开发人员和系统架构师深入学习SQL Server 2008的内部机制,还对那些想要理解和解决SQL Server性能问题的人们提供了宝贵的参考。书中的实例和经验分享有助于读者更好地理解和应用这些理论...

    SQL Optimizer for SQL Server 10.0.3

    6. **兼容性测试**:在升级SQL Server版本或应用新的数据库架构时,SQL Optimizer能帮助评估新环境下的查询性能,确保平滑过渡。 在实际使用SQL Optimizer的过程中,需要注意以下几点: - **理解执行计划**:优化...

    零点起飞学SQL server

    由于提供的文件信息中,标题和描述均为"零点起飞学SQL server"和"零点起飞学SQLServer",这两部分并没有提供实际的知识内容,而只是表达了一个关于SQL Server学习材料的主题。至于“墨马图书专营店”的重复内容,...

    Microsoft SQL Server 2008 Internals (PDF 高清版)

    本书深入探讨了SQL Server 2008内部机制的关键概念和技术细节,旨在为数据库管理员(DBA)、开发人员以及对SQL Server架构感兴趣的读者提供宝贵的参考。 #### 版权信息与出版信息 本书由Microsoft Press出版,版权...

    Spotlight on SQL Server

    2. **安装SQL Server**:安装过程中需要选择适当的版本(如Express、Developer、Standard或Enterprise),配置服务器实例,设置数据库文件路径,以及确定安全设置,包括登录账户和权限分配。 3. **Spotlight on SQL...

    SqlServer查看表结构

    本篇文章将深入解析“SqlServer查看表结构”的方法,以及如何利用SQL语句来获取详细的表结构信息,这对于数据库管理员(DBA)、数据分析师、软件开发者等专业人士来说尤为关键。 ### SQL Server查看表结构的重要性 ...

    SQL Tuning sqlServer 数据库

    以上内容只是《SQL Tuning in sqlServer 数据库》教程的部分要点,通过深入学习,你可以掌握一系列SQL Server性能优化的技巧和最佳实践,从而更好地管理和优化你的数据库系统。CHM格式的文档通常包含丰富的超链接和...

    sql server 2000 试题汇编答案

    3. **数据库架构**:SQL Server 2000中的数据库由表、视图、存储过程、触发器、索引、约束等构成。表是数据的主要载体,视图是虚拟的表,存储过程是预编译的SQL语句集合,触发器用于响应特定的数据更改事件,索引...

    SQL Server 2000菜鸟进阶.rar_sql_sql 2000_sql server_sql server 2000_

    在SQL Server 2000的学习过程中,理解其架构、熟悉T-SQL语法、掌握企业管理器和查询分析器的使用、了解数据库设计原则,以及学习如何与其他应用程序集成,都是必不可少的知识点。通过这份《SQL Server 2000菜鸟进阶...

    Thinkphp 连接 SQL SERVER 类

    这通常涉及到创建自定义的数据驱动(driver)或适配器(adapter),使得ThinkPHP能够理解并处理SQL Server的特定语法和特性。 1. **安装SQL Server PHP驱动**: 在使用ThinkPHP连接SQL Server之前,你需要确保已经...

Global site tag (gtag.js) - Google Analytics