【数据库学习笔记】什么是DBO?

刚开始使用SQL server,对DBO不是很理解。在网络上搜寻了一些他人的理解,现摘抄如下。

 来源网址:

  http://bbs.csdn.net/topics/200051355

  http://bbs.csdn.net/topics/100179549

我也上百度找了一下,有两个命案比较像。

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

这两答案,看上去感觉是大致一样,却明显有差别,真是头痛,希望对SQL有多年了解的前辈们给解释或下一个定论,到底是“构架”还是“默认用户”?

---------------------------------------------------------------------------------------------------------------------------

dbo是默认用户也是架构,
dbo作为架构是为了更好的与2000兼容,
在2000中DataBaseName.dbo.TableName解释为:数据库名.用户名.表名,
在2005中DataBaseName.dbo.TableName解释为:数据库名.架构名.表名,
这样2000中的代码移植到2005中就不会报错(dbo在2005中是默认的架构,创建表时,如不指定架构,则默认为属于dbo为个架构)。

----------------------------------------------------------------------------------------------------------------------------------

虽然 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 作为其默认架构。

-----------------------------------------------------------------------------------------------------------------------------------

时间: 2024-11-04 19:42:47

【数据库学习笔记】什么是DBO?的相关文章

数据库学习笔记(一)

1.在ORACLE里默认只有三个系统用户,ORACLE是通过用户登入.  SYS用户:超级管理员,权限最高,它的角色是DBA.默认密码是change_on_install.具有创建数据库的权限   SYSTEM用户:系统管理员,权限很高,它的角色是DBA operator,默认密码manager.不具有创建数据库的权限!  普通用户(normal),如系统安装时的scott用户,默认密码是tiger.普通用户的权限是SYS用户或SYSTEM用户给的. 在SQL SERVER里是通过WINDOWS

MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类

首先需要回顾一下上一篇文章中的内容:MySQL数据库学习笔记(九)----JDBC的PreparedStatement接口重构增删改查 一.JDBC事务处理: 我们已经知道,事务的概念即:所有的操作要么同时成功,要么同时失败.在MySQL中提供了Commit.Rollback命令进行事务的提交与回滚.实际上在JDBC中也存在事务处理,如果要想进行事务处理的话,则必须按照以下的步骤完成. JDBC中事务处理的步骤: 1.要取消掉JDBC的自动提交:void setAutoCommit(boolea

MYSQL数据库学习笔记1

MYSQL数据库学习笔记1 数据库概念 关系数据库 常见数据库软件 SQL SQL的概念 SQL语言分类 数据库操作 创建数据库 查看数据库的定义 删除数据库 修改数据库 创建表 数据类型 约束 修改表 表的增删查改 查询 数据库概念 数据库是一种对大量信息进行管理的一种方法. 数据库系统从结构上看,也是可以分为三层的: 物理层:数据实际如何存储 逻辑层:存储的是什么数据,以及数据间是什么关系 试图层:提供给用户的部分数据 关系数据库 目前关于数据库模型最主流的有两种, 一种叫做关系型数据库,这

sybase数据库学习笔记(一)

sybase的基本框架 sybase数据库由系统数据库.用户数据库.数据库设备和辅助文件组成. 1. 系统数据库 sybase数据库是多个数据库结构的数据库管理系统.分为系统数据库和用户数据库. 系统数据库是在安装的时候自动创建的,包括一下内容: master数据库:全面控制和管理用户数据库及sybase上的一切操作 temp数据库:为临时表和其他临时工作空间提供一个存储区域,是公用的 model数据库:为新建的用户数据库提供一个原型 sybsystemproc数据库:存储系统存储过程 其他系统

MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4085684.html 联系方式:[email protected] [正文] 这一周状态不太好,连续打了几天的点滴,所以博客中断了一个星期,现在继续. 我们在之前的几篇文章中学习了JDBC对数据库的增删改查.其实在实际开发中,一般都是使用第三方工具类,但是只有将之前的基础学习好了,在使用开源工具的

[转]mnesia数据库学习笔记

mnesia数据库学习笔记一 mnesia数据库学习笔记二 mnesia数据库学习笔记三 mnesia数据库学习笔记四

数据库学习笔记 一

数据库学习笔记 一 前言 作为程序员工作已经很长时间了,但是数据库方面的能力真的是拿不出手,所以准备开始系统的学习一下数据库知识. 我选择的数据库是微软对的SqlServer(MSSQL) 最开始有一次我闲的没事出去面试,被问到之前有没有用过MSSQL,脑中一片空白不知道这是个啥,我竟然说没用过. 安装 学习数据库当然是从安装开始啦,之前各种听说数据的安装和卸载有很大问题,如果遇到问题解决方案几乎都是重装系统,所以机智的我选择了虚拟机. 原来有搞过VMware这个东东确实不错,但是如果自己用免费

数据库学习笔记3 基本的查询流 2 select lastname+','+firstname as fullname order by lastname+','+firstname len() left() stuff() percent , select top(3) with ties

order by子句对查询结果集进行排序 多列和拼接 多列的方式就很简单了 select firstname,lastname from person.person order by lastname,firstname; 这句话表示根据lastname和firstname两列进行排序,并且是先按照lastname进行排序如果有相同的值就按照firstname进行排序. 拼接很有意思,可以写成这个样子 select lastname+','+firstname as fullname from

SQL 数据库 学习笔记

虽然学的慢,不过也需要一步一步地学. 学习笔记: 1. SQL语句大小写 不敏感 2. MySQL 需要分号; 3. 用过的命令: show databases: //显示有多少个数据库 create database first_lesson: //创建一个数据库 use first_lesson: //使用这个数据库 show tables: //显示有多少个表 describe person://显示表内的表头内容 insert into person values("dfd",