sp_dropuser (Transact-SQL)

適用対象: SQL Server

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

重要

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

Transact-SQL 構文表記規則

構文

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

引数

[ @name_in_db = ] N'name_in_db'

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

リターン コードの値

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

解説

sp_dropusersp_revokedbaccess を実行して、現在のデータベースからユーザーを削除します。

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

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

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

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

アクセス許可

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

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

EXEC sp_dropuser 'Albert';
GO