公告

國明的網路筆記

2011年12月13日 星期二

SQL Server 若以附加資料庫的方式,將資料庫掛上 SQL Server 2008,在資料庫中的使用者有帳號,可是在安全性裡的登入帳號並未對此資料庫存取勾選,如果要勾選了,則會出現此帳號已存在於此資料庫,因此一般都是先至資料庫將該帳號刪除後,再到安全性的帳號裡勾選資料庫存取,但是現在在 SQL Server 2008 裡出現問題,資料庫裡要刪除帳號時,出現錯誤訊息如下:

Drop failed for User 'XXX'. (Microsoft.SqlServer.Smo)
Additional information:
An exception occured while executing a Transact-SQL statment or batch.
(Microsoft.Sql Server.ConnectionInfo)
資料庫主體在資料庫中擁有 結構描述 且無法卸除。(Microsoft SQL Server, Error: 15138)

要如何做才能刪除 XXX 帳號?


只要先去把資料庫角色刪除 XX 帳號後,等一下,再刪除 XXX 帳號就可以!~_~

若還有刪除問題,依下列方式刪除
1) 展開資料庫名稱->安全性->結構描述
2) 刪除不要的使用者名稱結構描述
3) 資料庫角色刪除帳號後,等一下
4) 然後回到使用者,將舊的帳號刪除即可

-----------------------------------------------------------------
9. 在MSSQL資料庫轉移時,常常會遇到的問題
9.1. 資料庫使用還原或附加後,因為使用者不存在而造成網站無法正確讀取資料庫( 如圖nouser),此時需刪除並重建使用者
9.2. 要刪除使用者,重建時,發生使用者無法刪除,導致無法重建該使用者。常見原因有
9.2.1. 在該資料庫==>安全性==>結構描述中,有該使用者的名稱
處理方式:到結構描述中,將該使用者刪除,如果無法刪除,就與下面兩點有關
9.2.2. 在該資料庫==>資料表==>結構描述中,有該使用者的名稱(如圖table)
9.2.3. 在該資料庫==>檢示==>結構描述中,有該使用者的名稱(如圖view)

2000處理方式:手動將結構描述改為dbo
開啟SQL Server Enterprice Manager==>選擇該資料庫==>選擇資料表,其結構
描述為使用者名稱的==>到資料表上按滑鼠右鍵,選擇設計資料表==>按左上方“資料表與索引屬
性”(如圖property)==>變更擁有者為dbo(如圖property-1),存檔==>擁有者就改為dbo,就可
刪除帳號即可

2005處理方式:手動將結構描述改為dbo
開啟Microsoft SQL Server Management Studio==>選擇該資料庫==>選擇資料表,其結構
描述為使用者名稱的==>到資料表上按滑鼠右鍵,選擇設計==>在屬性中選結構描述==>變更擁有者
為dbo(如圖2005property),存檔==>擁有者就改為dbo,就可刪除帳號即可

2008處理方式:手動將結構描述改為dbo
開啟Microsoft SQL Server Management Studio==>選擇該資料庫==>選擇資料表,其結構
描述為使用者名稱的==>到資料表上按滑鼠右鍵,選擇設計==>在屬性中選結構描述==>變更擁有者
為dbo(如圖2008property),存檔==>擁有者就改為dbo,就可刪除帳號即可
註:SQL Server Management Studio 預設並不開啟屬性視窗,按F4就可開啟

參考:http://tw.myblog.yahoo.com/hsiung031/article?mid=533

沒有留言:

張貼留言