如何一次删除用户登录和用户定义的架构?

时间:2018-01-26 17:34:17

标签: sql sql-server database-schema

我的数据库中有一些用户不再是域的一部分,我想知道如何一次性删除这些用户及其用户定义的模式,而不是必须手动执行每个用户?谢谢!

2 个答案:

答案 0 :(得分:0)

你不能。 SQL Server要求如果用户仍拥有任何对象,则无法删除该用户。因此,典型的顺序是:1)将所有用户的对象的所有权转移给其他人(有时转移到DBO)2)将用户从数据库中删除。 3)从实例中删除用户。如果你跳过2和3,你将有孤儿用户,这会导致非常有趣的问题。

答案 1 :(得分:0)

这应该允许您重新分配SCHEMA,DROP SCHEMA然后DROP USER。

ALTER AUTHORIZATION ON SCHEMA::[schema name] TO dbo;
GO

DROP SCHEMA [schema name];
GO

DROP USER [user name];
GO

上述脚本是针对类似问题 How can I delete a user from sql server 2012 who owns a schema 的解决方案的修改版本。