在SQL Server中看见很多表名都有前缀dbo,但是不写也可以。比如pubs的数据库中的表dbo.title

1. dbo是一个构架(schema),在sql2005中,表的调用格式如下:"数据库名.构架名.表名",同一个用户可以被授权访问多个构架,也可以被禁止访问某个或多个构架,这就是2005中提倡的"用户与构架分离"的概念. 在2005中,如果在创建表时没有指定构架(schema),那么系统默认该表的构架是dbo,所以会出现很多表名前自动加上dbo.字符样式. 
2.DBO是每个数据库的默认用户,具有所有者权限,即DbOwner

dbo是默认用户也是架构,dbo作为架构是为了更好的与2000兼容,在2005前,没有架构的概念,只有用户的概念,那时候DBO是默认用户,大部分的数据库对象都是dbo的,到了2005,有了架构概念,但是为了向后兼容,保留了DBO,并且把DBO作为默认架构,在不指定架构的情况下,默认为dbo
在2000中DataBaseName.dbo.TableName解释为:数据库名.用户名.表名,
在2005中DataBaseName.dbo.TableName解释为:数据库名.架构名.表名,
这样2000中的代码移植到2005中就不会报错(dbo在2005中是默认的架构,创建表时,如不指定架构,则默认为属于dbo为个架构)。

如果要调用远程的数据库(如:数据名Skey,它是Sql2005),就要按照Skey.DataBaseName.dbo.TableName

虽然 SQL Server 2000 包含 CREATE SCHEMA 语句,但实际上并不会像上面所定义的那样创建架构。在 SQL Server 2000 中,数据库用户和架构是隐式连接在一起的。每个数据库用户都是与该用户同名的架构的所有者。对象的所有者在功能上与包含它的架构所有者相同。因而,SQL Server 2000 中的完全限定名称的“架构”也是数据库中的用户。

在 SQL Server 2005 中,架构独立于创建它们的数据库用户而存在。可以在不更改架构名称的情况下转让架构的所有权。并且可以在架构中创建具有用户友好名称的对象,明确指示对象的功能。

SQL Server 2005 还引入了“默认架构”的概念,用于解析未使用其完全限定名称引用的对象的名称。在 SQL Server 2000 中,首先检查的是调用数据库用户所拥有的架构,然后是 DBO 拥有的架构。在 SQL Server 2005 中,每个用户都有一个默认架构,用于指定服务器在解析对象的名称时将要搜索的第一个架构。可以使用 CREATE USER 和 ALTER USER 的 DEFAULT_SCHEMA 选项设置和更改默认架构。如果未定义 DEFAULT_SCHEMA,则数据库用户将把 DBO 作为其默认架构。

sql server中的登录名,用户,架构,模式,角色,所有者,登录名,dbo之间的关系

登录名是登录数据库服务器时候用的

用户指的是某个具体的数据库中的用户。管理员可以设置登录名和具体的数据库中的用户的映射关系。

下面为了方面,用用户简称某个具体数据库中的用户。

在数据库中。例如在学生选课数据库中,可以有多个用户,每个用户可以有多个模式(在smss中叫做架构,模式的意义就是定义命名空间,防止出现命名冲突),每个模式可以有多张表。注意每个模式只能属于某一个用户。

所有者是一个数据库服务器的登录名,假设A登录数据库服务器,创建了一个数据库,这个数据库的所有者就是A。

dbo这是有两个意思,一个是用户dbo,相当linux中的root用户,拥有最高权限,用windows身份验证登录进去,映射到具体数据库中就是dbo用户;二是模式dbo,默认属于用户dbo,是用户dbo的一个默认命名空间。

SQL Server 中“dbo”到底是什么相关推荐

  1. SQL SERVER中[dbo]的解释

    http://blog.csdn.net/libo2006/article/details/1719178 http://www.cnblogs.com/java-boy/archive/2011/0 ...

  2. SQL Server中如何取得刚插入的标识值

    数据库实际应用中,我们往往需要得到刚刚插入 的标志值来往相关表中写入数据.但我们平常得到的真的是我们需要的那个值么? 有时我们会使用 SELECT @@Identity 来获得我们刚刚插入的值,比如下 ...

  3. SQL Server中的T-SQL元数据功能的完整指南

    In this article, we will demonstrate T-SQL metadata functions available in the SQL Server. 在本文中,我们将演 ...

  4. 整理:sql server 中sql语句执行顺序

    原文地址为: 整理:sql server 中sql语句执行顺序 SQL Server 查询处理中的各个阶段(SQL执行顺序) SQL 不同于与其他编程语言的最明显特征是处理代码的顺序.在大数编程语言中 ...

  5. SQL Server 中深入理解GRANT、REVOKE 和 DENY 的区别

    在SQL Server数据库登陆账户.数据库用户权限管理中,经常会授予权限.回收权限,有时还会拒绝权限.GRANT.REVOKE是我们常用的,但有时会遇到使用DENY的情形.从英文单词的字面意思来看, ...

  6. SQL Server中SELECT会真的阻塞SELECT吗?

    在SQL Server中,我们知道一个SELECT语句执行过程中只会申请一些意向共享锁(IS) 与共享锁(S), 例如我使用SQL Profile跟踪会话86执行SELECT * FROM dbo.T ...

  7. 在SQL Server中保存和输出任意类型的文件

    我们可以把任意类型的文件保存到SQL Server中,在进行例子之前,先建立测试用表格,TestFile.sql: if exists (select * from dbo.sysobjects wh ...

  8. SQL Server中读取XML文件的简单做法

    SQL Server 2000使得以XML导出数据变得更加简单,但在SQL Server 2000中导入XML数据并对其进行处理则有些麻烦.本文介绍在SQL Server中读取XML文件的简单做法. ...

  9. SQL Server 中的事务与事务隔离级别以及如何理解脏读, 未提交读,不可重复读和幻读产生的过程和原因...

    原本打算写有关 SSIS Package 中的事务控制过程的,但是发现很多基本的概念还是需要有 SQL Server 事务和事务的隔离级别做基础铺垫.所以花了点时间,把 SQL Server 数据库中 ...

  10. [转帖]在SQL SERVER中实现RSA加密算法

    /*本次修改增加了unicode的支持,但是加密后依然显示为16进制数据,因为进行RSA加密后所得到的unicode编码是无法显示的,所以密文依然采用16进制数据显示. 需要特别注意:如果要对中文进行 ...

最新文章

  1. careercup-链表 2.2
  2. 2018年的上半年目标之一:培养阅读的兴趣和爱好
  3. 剖析Elasticsearch集群系列第一篇 Elasticsearch的存储模型和读写操作
  4. Golang源码探索(一) 编译和调试源码
  5. 阿里云-流量控制策略
  6. wextend matlab,小波学习之三(多孔算法与MATLAB swt剖析)转载
  7. 时间管理(二):时间管理的六项基本原则
  8. Abaqus齿轮链条传动仿真案例
  9. 数字序号转为字母序号
  10. BF算法与KMP算法
  11. 微信从原版到现在所有界面图片_微信6年来首次更换启动界面地球图片:来感受一下...
  12. 索引合并和组合索引的比较
  13. NN、DN、2NN、JN
  14. Java实现 蓝桥杯VIP 算法提高 3000米排名预测
  15. python 有没有 hold on的用法
  16. 使用v-show不起作用的原因有哪些-
  17. Guava-RateLimiter秒杀限流技术详解
  18. Numpy 函数 (一) squeeze(), unsquezze()
  19. Java VM错误解决方法
  20. Windows 8本地化多语言支持

热门文章

  1. NetWare 客户服务禁用了欢迎屏幕和快速切换恢复方法
  2. 10 craps赌博游戏
  3. 华盛顿大学计算机专业gpa,以未决定专业进入大学再转计算机专业可行吗?
  4. 金蝶云星空即时库存查询SQL语句SQLServer
  5. 福禄克FLUKE OptiFiber Pro HDR OTDR光时域反射(OTDR)测试仪OFP2-100-S
  6. iOS 新浪微博-1.1框架升级
  7. 虚拟化、云计算、开放源代码及其他
  8. 基于toolbox_calib工具箱的相机标定matlab仿真
  9. 软件测试测试常见分类有哪些?
  10. amaze 绝对位置 html,amaze ui 的使用详细教程