电脑安全

您当前的位置:主页 > 电脑安全 >

成批更改sql server数据库所有者的对象-网络编程

来源:[db:来源]标题:   所有者    编辑:电脑技术全能网 时间:2019-09-18 12:30

原标题:成批更改sql server数据库所有者的对象-网络编程
   中心提醒:由于一些网站是应用虚构主机.用sql-server导数据下来的话  由于一些网站是应用虚构主机.用sql-server导数据下来的话.  数据库的用户默许是你登录的用户,不是dbo,偶然就和当地发生纷歧致.  --功效阐明:成批变动数据库全部者的工具  --作者:不详  --用法:exec ChangeObjectOwner 'nmkspro','dbo'  --便可将全部nmkspro全部者的工具改成dbo全部  --运转胜利后将提醒:"留神: 变动工具名的任一局部都能够损坏剧本和存储进程。"  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'' '  单个修正:  exec sp_changeobjectowner '要改的表名','dbo'  方式一:间接点击该表-》计划-》属性-》变动下面的全部者。该方式针关于表少的情形下。  方式二:应用剧本间接履行,用体系帐号或许超户登岸到该数据库,而后履行上面语句:  sp_configure 'allow updates','1'  go  reconfigure with override  go  update sysobjects set uid=1 where uid<>1 --依据前提能够恣意修正,在多用户之间切换。  go  sp_configure 'allow updates','0'  go  reconfigure with override