web-dev-qa-db-ja.com

SQL Serverデータベースからユーザーを削除しますか?

ログを削除せずにデータベースからユーザーを削除するにはどうすればよいですか?

スクリプトは、ユーザーがデータベースに存在するかどうかを確認し、存在する場合は削除します。

26
sanjeev40084

これはあなたがやろうとしていることですか??

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

SQL Server Management Studioを使用している場合は、ユーザーを参照し、右クリックして[削除]を選択できます。

48
doug_w

設定したユーザーテーブルにDropped/Deletedフラグを設定するだけで、そのユーザーのログ情報を保持する場合は参照整合性を維持する必要があります。

そうしないと、現在削除を妨げている外部キー制約を削除する必要があるように思えますが、これはお勧めしません。

2
jamesaharvey

受け入れられた答えは十分に機能しています。さらに、SQL ServerがIF EXISTをバージョン2016(13.x)の一部のDROPコマンドに追加したことを知っておくと便利です( 'DROP USER'コマンド)。

IF EXISTS

適用対象:SQL Server(SQL Server 2016(13.x)〜現在のバージョン、SQL Database)。

ユーザーが既に存在する場合にのみ、条件付きでユーザーを削除します。

したがって、次のようにユーザーを削除することができます:

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

このリンクの完全な説明を参照してください: DROP USER(Transact-SQL)

この助けを願っています。

1
QMaster