找回密码
 注册
首页 ≡≡网络技术≡≡ 数据库 什么是DBO

什么是DBO

灰儿 2007-12-12 13:25:06
<p>DBO是每个数据库的默认用户,具有所有者权限,即DbOwner<br />通过用DBO作为所有者来定义对象,能够使数据库中的任何用户引用而不必提供所有者名称。<br />比如:你以User1登录进去并建表Table,而未指定DBO,<br />当用户User2登进去想访问Table时就得知道这个Table是你User1建立的,要写上User1.Table,如果他不知道是你建的,则访问会有问题。<br />如果你建表时把所有者指给了Dbo,则别的用户进来时写上Dbo.Table就行了,不必知道User1。<br />不光表是如此,视图等等数据库对象建立时也要如此才算是好。<br /><br />建表、存储过程、视图等数据库对象时,其对应的所有者是创建它的用户。则除了该用户其他登录用户要引用这些东东时,都要加上前缀,很是麻烦。而且,程序因此易出错,你查来查去问题确出在这,浪费你时间。<br /></p><p><strong><font size=2>怎么样把sql server 2000的用户表的所有者,改成dbo,而不是用户名</font></strong></p><p>附修改存储过程的方法,在查询器中执行:<br />exec sp_changeobjectowner &#39;usera.hishop_creatorder&#39;, &#39;dbo&#39;),就把 usera的存储过程改为dbo所有了。<br /><br />答:方法一:右键点击该表-》设计表,在上面的一排小图标中,点最后一个“条件约束”,点“表”页,在里面更改所有者。(若没有条件约束的小图标,可以点右键,能看到一个“check约束”的选项)<br /><br />方法二:利用脚本直接执行,用系统帐号或者超户登陆到该数据库,然后执行下面语句:<br /><br />sp_configure &#39;allow updates&#39;,&#39;1&#39;<br />go<br />reconfigure with override<br />go<br />update sysobjects set uid=1 where uid&lt;&gt;1 <br />go<br />sp_configure &#39;allow updates&#39;,&#39;0&#39;<br />go<br />reconfigure with override<br /><br />第二种方法只能使用一次,第二次使用会出错。</p>
您需要登录后才可以回帖 登录 | 注册
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。