如何从拥有架构的sql server 2012中删除用户

时间:2015-10-08 20:10:24

标签: sql-server sql-server-2012

我在Sql Server 2012中创建了一个新用户并且“偶然”我将它们标记为多个模式的所有者。我打算将它们标记为模式的成员,但我在错误的选项卡上!

因为他们现在是架构的所有者,所以我无法取消选择所有权,也无法删除用户。我怎样才能解除我的错误?

Schema Ownership

1 个答案:

答案 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];