【数据库学习笔记】什么是DBO?
刚开始使⽤SQL server,对DBO不是很理解。在⽹络上搜寻了⼀些他⼈的理解,现摘抄如下。
来源⽹址:
我也上百度了⼀下,有两个命案⽐较像。
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 作为其默认架构。
-----------------------------------------------------------------------------------------------------------------------------------
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论