更改数据库的所有者权限

来源:互联网 发布:淘宝怎么加入一淘条件 编辑:程序博客网 时间:2024/05/01 12:46

用到以下存储过程:


CREATE   PROCEDURE   dbo.ChangeObjectOwner
@OldOwner as   NVARCHAR(128),--参数原所有者
@NewOwner as   NVARCHAR(128)--参数新所有者
AS

DECLARE   @Name   as   NVARCHAR(128)  
DECLARE   @Owner as   NVARCHAR(128)
DECLARE   @OwnerName as   NVARCHAR(128)

DECLARE   curObject   CURSOR   FOR  
select 'Name' = name,
'Owner' =  user_name(uid)
from   sysobjects
where   user_name(uid)=@OldOwner
order   by   name

OPEN     curObject
FETCH   NEXT   FROM   curObject   INTO   @Name,   @Owner
WHILE(@@FETCH_STATUS=0)
BEGIN        
if   @Owner=@OldOwner  
begin
set   @OwnerName   =   @OldOwner   +   '.'   +   rtrim(@Name)
exec   sp_changeobjectowner   @OwnerName,   @NewOwner
end

FETCH   NEXT   FROM   curObject   INTO   @Name,   @Owner
END

close   curObject
deallocate   curObject
GO

exec   sp_MSForEachTable   'EXEC   sp_changeobjectowner   ''?'',   ''dbo'''