首页 » SQL Server » sql server修改数据库所有者

sql server修改数据库所有者

如果sql server里的用户之前创建过数据库,而且已经使用,再删除这个用户是不可以的会报错,如果不想删除这用户建的数据库,只能更改数据库的所有者

1先找一个是这个用户建的库名,因为在下面要用

2,在master..sysdatabases表中找出上面库对应的sid,列出这个SID创建的所有库

3,调用sp_changedbowner

下面做个例子把一个后建用户的数据库所有者修改为sa

select name,convert(int,sid) from dbo.sysdatabases where name=’那个用户创建的dbname’

比如是-365464664,sa的一般为1;

use master

declare @db varchar(40)
declare @sqlstr varchar(4000)
declare cur_db cursor for
select name from dbo.sysdatabases where convert(int,sid)=-365464664
open cur_db
fetch next from cur_db into @db
while @@fetch_status = 0
begin
set @sqlstr =’use ‘+@db
set @sqlstr=@sqlstr+char(10)
set @sqlstr=@sqlstr+’EXEC sp_changedbowner ”sa”’
print @sqlstr
fetch next from cur_db into @db
end;
close cur_db
deallocate cur_db

———————–生成拼的脚本————

use XiangYi_YHK_Time
EXEC sp_changedbowner ‘sa’
use XiangYiQuanKe_HeiLongJiang_SQHS3
EXEC sp_changedbowner ‘sa’
use XiangYiQuanKe_HeiLongJiang3
EXEC sp_changedbowner ‘sa’
use XiangYiQuanKe_HeNan_SQHS2
EXEC sp_changedbowner ‘sa’
use XiangYiQuanKe_HeNan2
EXEC sp_changedbowner ‘sa’
use XiangYiQuanKe_ShanDong_SQHS2
EXEC sp_changedbowner ‘sa’
use XiangYiQuanKe_ShanDong_SQHS3
EXEC sp_changedbowner ‘sa’
use XiangYiQuanKe_ShanDong2
EXEC sp_changedbowner ‘sa’
use XiangYiQuanKe_ShanDong3
EXEC sp_changedbowner ‘sa’
use XiangYiZaiGangPeiXun_GuangDong_MeiZhou
EXEC sp_changedbowner ‘sa’
use XiangYiZaiGangPeiXun_HaiNan
EXEC sp_changedbowner ‘sa’
use XiangYiZaiGangPeiXun_HeBei_GG08
EXEC sp_changedbowner ‘sa’
use XiangYiZaiGangPeiXun_HeBei_SYJS09
EXEC sp_changedbowner ‘sa’
use XiangYiZaiGangPeiXun_JiangSu
EXEC sp_changedbowner ‘sa’
use XiangYiZaiGangPeiXun_shanxi09
EXEC sp_changedbowner ‘sa’
use XiangYiZaiGangPeiXun_Sichuan_GG
EXEC sp_changedbowner ‘sa’
use XiangYiZaiGangPeiXun_XiAn09
EXEC sp_changedbowner ‘sa’
use XiangYiZaiGangPeiXunNew_ShanXi_GG
EXEC sp_changedbowner ‘sa’
use XiangYiZaiGangPeiXunNew_TongChuan09
EXEC sp_changedbowner ‘sa’

所生成的脚本粘到查询分析器中执行吧!

打赏

目前这篇文章有1条评论(Rss)评论关闭。

  1. Damion Blickenstaff | #1
    2011-12-21 at 07:55

    Multicast Wireless is a mission-based, cutting edge, progressive multimedia organization located in Huntsville, Alabama.