从 SQL Server 数据库中删除用户?

Posted

技术标签:

【中文标题】从 SQL Server 数据库中删除用户?【英文标题】:Drop User from SQL Server Database? 【发布时间】:2011-01-02 15:26:54 【问题描述】:

如何在不删除日志的情况下从数据库中删除用户?

脚本应该检查用户是否存在于数据库中,如果存在则删除用户。

【问题讨论】:

How do you test for the existence of a user in SQL Server? 的可能重复项 【参考方案1】:

这是你想要做的吗??

IF  EXISTS (SELECT * FROM sys.database_principals WHERE name = N'username')
DROP USER [username]

如果您使用的是 SQL Server Management Studio,您可以浏览到用户并右键单击选择删除。

【讨论】:

这里的 N 是什么 N'username' ? 'n' 只是告诉 sql server 字符串值是 unicode。这可以防止使用各种字符集的人出现问题。 显然我在 2019 年 9 月 23 日和今天 2021 年 9 月 7 日再次发现了这个(现在我知道为什么我从不记住东西了,我可以用谷歌搜索它们:)再次感谢第二次,不过不能再给你投票了。【参考方案2】:

接受的答案足够好。此外,很高兴知道 SQL Server 从版本 2016 (13.x) 开始向一些 DROP 命令添加了 IF EXIST,包括“DROP USER”命令。

如果存在

适用于:SQL Server(SQL Server 2016 (13.x) 到当前版本,SQL 数据库)。

仅当用户已存在时有条件地删除该用户。

所以你可以像下面这样删除用户:

-- Syntax for SQL Server and Azure SQL Database  
DROP USER IF EXISTS user_name  

查看此链接中的完整说明:DROP USER (Transact-SQL)

希望对您有所帮助。

【讨论】:

旧答案并没有错,但这是 2016+ 最干净、最简洁的方法。

以上是关于从 SQL Server 数据库中删除用户?的主要内容,如果未能解决你的问题,请参考以下文章

从 powershell 中删除 SQL Server 数据库

SQL Server,如何从用户定义的表类型中删除更新元素?

sql server 2008 sa禁用 windows用户删除了 怎么才能再登陆?

删除sql server用户时报15138错误

怎样在SQL Server2005中删除数据库用户

SQL Server 删除数据库