In a sql Server 2005 database,I was having a hard time deleting a user I had created.
I kept getting this error:
The database principal owns a database role and cannot be dropped. Msg 15421.
MSDN and Google were not helpful on this error. Ater lots of search attempts I kept coming up empty:
I spent some time looking through varIoUs dialogs in sql Server Management Studio. I was unable to find the problem - probably because I am not as familiar with the UI as I was with Enterprise Manager.
I finally wrote a script that helped me identify for which role the user was listed as an owner. Here it is:
select dp2.name as role,dp1.name as owner
from sys.database_principals as dp1 inner join sys.database_principals as dp2
on dp1.principal_id = dp2.owning_principal_id
where dp1.name = 'DeleteMe '
In the last line of the script,make sure you specifiy the user name and not the login name. 'DeleteMe' is the user name I want to delete. See the screen shot below:
After running this script,I found which role had my user listed as owner.
With that kNowledge,I opened the role dialog in sql Server Management Studio and changed the owner to 'dbo'. Below is the before screen shot.
The owner should be changed to a principal other than the one you are trying to delete. I used 'dbo' as shown here:
Once this change was made I was able to delete the user I wanted to get rid of.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。