我在Sql Server 2012中创建了一个新用户并且“偶然”我将它们标记为多个模式的所有者。我打算将它们标记为模式的成员,但我在错误的选项卡上!
因为他们现在是架构的所有者,所以我无法取消选择所有权,也无法删除用户。我怎样才能解除我的错误?
答案 0 :(得分:5)
在删除用户之前,您必须将架构的所有权转移给其他用户,可能是dbo
:
为了测试这个,我做了以下事情:
创建用户以拥有架构和测试架构:
USE tempdb;
CREATE USER [testuser] WITHOUT LOGIN;
GO
CREATE SCHEMA [max] AUTHORIZATION testuser;
GO
尝试删除将失败的用户:
DROP USER [testuser];
GO
Msg 15138,Level 16,State 1,Line 1
数据库主体在数据库中拥有一个模式,不能删除。
将架构的所有权转让给其他用户,在这种情况下是拥有数据库的特殊用户dbo
:
ALTER AUTHORIZATION ON SCHEMA::[max] TO dbo;
GO
现在,删除测试用户:
DROP USER [testuser];