無法刪除複寫發行集,因為主體dbo不存在(Error Code 15517)錯誤排除
一月份的SQL PASS聚會結束後,有位朋友問了我一個問題。
他的一個複寫發行集一直無法被刪除,他告訴我系統顯示訊息
是dbo權限有問題。當下我也無法回覆他(複寫我也不是很懂),
因此請他到SQL PASS的FB提問,我會幫他尋求解答。
回到家後針對他提出的關鍵字上網google一下,發現了一個討論串
似乎有相關連,連結如下:
經閱讀過討論串內容後,發現應該是Databases中dbo這一個user沒有
對應到login帳號,導致要刪除發行集時會產生dbo不存在的錯誤訊息
下圖是我模擬出來的錯誤訊息
因為錯誤訊息表示主體dbo不存在,因此我們就到Database的屬性頁去看(如下圖),
您會發現資料庫擁有者的欄位會是空值,此時我們只要指定一個login帳號當該
Database的Owner後,再刪除該發行集就不會發生該錯誤訊息了。
一般會有擁有者是空值的情況大多是該Database是從別台SQL Server利用還原或是附加的
方式搬到另一台SQL Server。而該Database的擁有者login帳號在目的SQL Server上並不存在
,因此搬到目的SQL Server後會因為該Database的dbo對應不到login帳號而導致擁有者欄位
變成空值。
我是ROCK
rockchang@mails.fju.edu.tw