从 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,如何从用户定义的表类型中删除更新元素?