Ms 數據庫,表,存儲過程等等相關所有者操作

--修改所有用戶表/存儲過程/視圖/觸發器/自定義函數的所有者爲dbo,則用遊標(不要理會錯誤提示)  
   
  declare   tb   cursor   local   for  
  select   'sp_changeobjectowner   ''['+replace(user_name(uid),']',']]')+'].['  
  +replace(name,']',']]')+']'',''dbo'''  
  from   sysobjects    
  where   xtype   in('U','V','P','TR','FN','IF','TF')   and   status>=0  
  open   tb  
  declare   @s   nvarchar(4000)  
  fetch   tb   into   @s  
  while   @@fetch_status=0  
  begin  
  exec(@s)  
  fetch   tb   into   @s  
  end  
  close   tb  
  deallocate   tb  
  go   

 

批量修改:
EXEC sp_MSforeachtable 'exec sp_changeobjectowner ''?'',''dbo'' '
單個修改:
exec sp_changeobjectowner '要改的表名','dbo'

只有所有者才能更改表的所有者

示例  
  下面的示例使用戶   Albert   成爲當前數據庫的所有者,並將舊數據庫所有者的現有別名映射到   Albert。  
   
  EXEC   sp_changedbowner   'Albert'   
    
執行了EXEC   sp_changedbowner   'Albert'   也沒有反映  
  用了EXEC   sp_changeobjectowner   'authors',   'Corporate/GeorgeW'   

 

這是孤立用戶  
  USE   aaa  
  go  
  EXEC   sp_change_users_login   'Auto_Fix',   'aaa',   NULL,   'password'  
  go   
 

發佈了20 篇原創文章 · 獲贊 0 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章