我在 Sql Server 2012 中创建了一个新用户,并且“偶然”我将它们标记为多个架构的所有者。我打算将它们标记为架构的成员,但我在错误的选项卡上!
因为他们现在是架构的所有者,所以我无法取消选择所有权,也无法删除用户。我怎样才能撤销我的错误?
最佳答案
您必须将架构的所有权转让给其他用户,可能是 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
The database principal owns a schema in the database, and cannot be dropped.
将架构的所有权转移给其他用户,在本例中为特殊用户
dbo
,拥有数据库:ALTER AUTHORIZATION ON SCHEMA::[max] TO dbo;
GO
现在,删除测试用户,它有效:
DROP USER [testuser];
关于sql-server - 如何从拥有架构的 sql server 2012 中删除用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33025093/