1. 程式人生 > >sqlserver 無法刪除使用者 提示"該使用者擁有物件,無法刪除"

sqlserver 無法刪除使用者 提示"該使用者擁有物件,無法刪除"

sqlserver 無法刪除使用者碰到一個數據庫下無法刪除使用者的情況,總是提示"該使用者擁有物件,無法刪除",最後老大過來解釋後,發現原來在該使用者下有幾個表物件,用sql語句去改變那些表的使用者的語句:

sp_changeobjectowner 'can.WCMDocQuoteImage','dbo'

注意,這裡can是要刪除的使用者,同時它擁有物件--WCMDocQuoteImage,最後我們改變成讓dbo擁有這個物件。


通過執行   sp_addlogin,把登入   janetl   改名為   dbo。     

sp_addlogin   'janetl',   'dbo'   

備份資料庫。在本例中,備份   Northwind。     
BACKUP   DATABASE   Northwind   
TO   DISK   =   'c:\mssql\backup\northwnd'   
除去剛剛備份的資料庫。     
DROP   DATABASE   Northwind   

除去登入。     
sp_droplogin   'janetl'   
還原備份的資料庫。     
RESTORE   DATABASE   Northwind   
FROM   DISK   =   'c:\mssql\backup\northwnd'   
janetl   登入不能訪問   Northwind   資料庫,除非允許   guest   登入。儘管   janetl   登入已經刪除,它仍然(作為一個孤立行)顯示在   sysusers   表中:   
USE   Northwind   
SELECT   *   
FROM   sysusers   
WHERE   name   =   'janetl'   
解決孤立使用者問題     
    
用   sp_addlogin   新增一個臨時登入。為孤立使用者指定安全識別符號   (SID)(從   sysusers)。     
sp_addlogin   @loginame   =   'nancyd',   
          @sid   =   0x32C864A70427D211B4DD00104B9E8A00   
 用   sp_dropalias   除去屬於別名   SID   的臨時別名。     
sp_dropalias   'nancyd'   

用   sp_dropuser   除去原始使用者(即現在的孤立使用者)。     
sp_dropuser   'janetl'   

用   sp_dropuser   除去原始登入。     
sp_droplogin   'nancyd'