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

问题描述 投票:24回答:3

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

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

sql sql-server user-management
3个回答
48
投票

这是你想要做的吗?

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

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


2
投票

您可能应该在您设置的用户表上放置一个Dropped / Deleted标志,从而在保留该用户的日志记录信息时保持参照完整性。

否则,听起来您必须删除当前阻止删除的外键约束,但我不建议这样做。


1
投票

接受的答案工作得很好。另外,很高兴知道SQL Server将IF EXIST添加到版本2016(13.x)的某些DROP命令,包括'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)

希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.