SQL server两种修改对象所有者的方法,

一般开发,SQL Server的数据库所有者为dbo.但是为了安全,有时候可能把它换成其它的名称.

所有者变换不是很方便.这里列出两种供参考

一:

-- -******************更改权限以添加HHRC用户*************************
--
step1 添加第三方用户,如"chn"
--
step2 运行sql,加对象权限移至第三方用户
--
step3 添加hhrc用户
--
step4 运行sql,将对象权限移至hhrc用户
declare   @tblname   varchar ( 30 )
declare   @tblown   varchar ( 50 )
declare  tbl_cur  cursor   for  
select  name  from  sysobjects  where  uid = ' 5 '   and  status >= 0   and   xtype  in  ( ' U ' , ' P ' )
-- select * from sysusers
open  tbl_cur
fetch   next   from  tbl_cur  into   @tblname
while   @@fetch_status = 0
begin
set   @tblown = ' web56433. ' + @tblname
EXEC  sp_changeobjectowner  @tblown ' chn '
print   @tblname
fetch   next   from  tbl_cur  into   @tblname
end
close  tbl_cur
deallocate  tbl_cur

第二种.
-- 手动修改系统表
--
设备可以手动修改表
exec  sp_configure  ' allow updates ' , 1
RECONFIGURE   WITH  OVERRIDE
-- 更改对象所有者
update  sysobjects  set  uid  =   1   where  uid  =   5

update  sysobjects  set  uid  =   5   where  uid  =   1   AND  xtype  !=   ' S '

update  sysobjects  set  uid  =   1    where  name  =   ' syssegments '

update  sysobjects  set  uid  =   1    where  name  =   ' sysconstraints '

exec  sp_configure  ' allow updates ' , 0
RECONFIGURE   WITH  OVERRIDE

你可能感兴趣的:(SQL server两种修改对象所有者的方法,)