sp_dropuser (Transact-SQL)

適用対象:SQL Server

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

重要

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

Transact-SQL 構文表記規則

構文

sp_dropuser [ @name_in_db = ] N'name_in_db'
[ ; ]

引数

[ @name_in_db = ] N'name_in_db'

削除するユーザーの名前。 @name_in_dbは sysname で、既定値はありません。 @name_in_dbは、現在のデータベースに存在する必要があります。 Windows アカウントを指定するときは、データベースがそのアカウントを認識する名前を使用します。

リターン コードの値

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

解説

sp_dropuser は、現在のデータベースからユーザーを削除するために実行 sp_revokedbaccess されます。

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

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

sp_dropuserを使用して、データベース所有者 (dbo) ユーザーまたはゲスト ユーザーをmastertempdbデータベースから削除することはできません。 INFORMATION_SCHEMA 非システム データベースでは、EXEC sp_dropuser 'guest'ユーザー ゲストからアクセス許可をCONNECT取り消しますが、ユーザー自体は削除されません。

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

アクセス許可

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

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

EXEC sp_dropuser 'Albert';
GO