问题:
在删除数据库用户时出现以下提示
消息 15138,级别 16,状态 1,第 3 行
数据库主体在该数据库中拥有 架构,无法删除。
处理:
把架构的拥有者设置为其它用户,如dbo,再删除
重现方法:
USE [master]
GO
-- 准备测试环境
create login myUser1 WITH PASSWORD= 'sfasfsdf1231231'
go
create user myUser1
go
CREATE SCHEMA [mySa] AUTHORIZATION [dbo]
go
-- 问题原因
ALTER AUTHORIZATION ON SCHEMA::[mySa] TO [myUser1]
go
-- 删除用户,这里会出错
DROP USER myUser1
/* output
消息15138,级别16,状态1,第1 行
数据库主体在该数据库中拥有架构,无法删除。
*/
ALTER AUTHORIZATION ON SCHEMA::[mySa] TO [dbo]
go
DROP USER myUser1
go
/* here OK */
drop login myUser1
go
drop SCHEMA [mySa]
本文介绍了解决在SQL Server中因用户拥有架构而无法删除的问题。通过将架构的所有权转移给其他用户(如dbo),然后删除原用户的方法,有效地避免了错误15138的出现。
2211

被折叠的 条评论
为什么被折叠?



