sqlserver 無法刪除使用者 提示"該使用者擁有物件,無法刪除"
阿新 • • 發佈:2019-01-22
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'