TIPS-Alter Assembly's Owner
0 |
Attach或Retore SQL資料庫到別台,必須要先Drop User才能重設User權限,這個我很早就有經驗。
這次的問題有點不一樣,在Drop User時出現以下訊息:
The database principal owns an assembly and cannot be dropped
用SQL Server Management Studio檢查,果然有一個SQLCLR Stored Procedure的Owner不是dbo,而是這個我要Drop的User。我想起來,之前在Deploy SQLCLR Procedure時,連線字串用了這個User帳號而沒用sa,但Assembly似乎不能用sp_changeobjectowner更換Owner,MSDN文件上也闡明了未來將不再支援sp_changeobjectowner這個老SP,將以ALTER AUTHORIZATION、ALTER SCHEMA取代之,所以就要寫成:
ALTER AUTHORIZATION ON Assembly::MyAsembly TO dbo;
將Owner改掉後,就可以Drop User囉!
Comments
Be the first to post a comment