sp_dropuser (Transact-SQL)

現在のデータベースからデータベース ユーザーを削除します。sp_dropuser は、以前のバージョンの SQL Server との互換性を提供するためのものです。

重要な注意事項重要

この機能は、将来のバージョンの Microsoft SQL Server では削除される予定です。新しい開発作業では、この機能の使用を避け、現在この機能を使用しているアプリケーションは修正するようにしてください。代わりに DROP USER を使用してください。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

sp_dropuser [ @name_in_db = ] 'user'

引数

  • [ @name_in_db = ] 'user'
    削除するユーザーの名前を指定します。user のデータ型は sysname で、既定値はありません。user は現在のデータベース内に存在する必要があります。Windows ログインを指定する場合は、データベースでログインとして認識されている名前を使用してください。

リターン コードの値

0 (成功) または 1 (失敗)

説明

sp_dropuser では、sp_revokedbaccess を実行することにより、ユーザーが現在のデータベースから削除されます。

現在のデータベースから削除できるユーザー名の一覧を表示するには、sp_helpuser を使用します。

データベース ユーザーを削除すると、そのユーザーの別名も削除されます。ユーザーが、ユーザー名と同じ空のスキーマを所有している場合、そのスキーマは削除されます。ユーザーがデータベース内にその他のセキュリティ保護可能なリソースを所有している場合、ユーザーは削除されません。まず、オブジェクトの所有権を別のプリンシパルに譲渡する必要があります。詳細については、「ALTER AUTHORIZATION (Transact-SQL)」を参照してください。データベース ユーザーを削除すると、そのユーザーに関連付けられている権限が自動的に削除されます。ユーザーは、メンバとなっているデータベース ロールから削除されます。

sp_dropuser を使用して、データベース所有者 (dbo) INFORMATION_SCHEMA ユーザーを削除したり、master または tempdb データベースから guest ユーザーを削除することはできません。システム以外のデータベースで EXEC sp_dropuser 'guest' を実行すると、ユーザー guest の CONNECT 権限が取り消されますが、ユーザー自身は残ります。

ユーザー定義のトランザクション内では、sp_dropuser は実行できません。

権限

データベースに対する ALTER ANY USER 権限が必要です。

次の例では、現在のデータベースからユーザー Albert を削除します。

EXEC sp_dropuser 'Albert';
GO