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

时间:2010-01-07 19:32:27

标签: sql sql-server user-management

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

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

3 个答案:

答案 0 :(得分:45)

这是你想要做的吗?

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

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

答案 1 :(得分:1)

您可能只是在您设置的用户表上有一个Dropped / Deleted标志,因此如果要保留该用户的日志记录信息,请保持参照完整性。

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

答案 2 :(得分:0)

可接受的答案效果很好。此外,很高兴知道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)

希望获得帮助。