sp_dropuser (Transact-SQL)
適用対象: SQL Server
現在のデータベースからデータベース ユーザーを削除します。 sp_dropuser
は、以前のバージョンの SQL Server との互換性を提供します。
重要
この機能は、 SQL Serverの将来のバージョンで削除される予定です。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。 代わりに DROP USER を使用してください。
構文
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」を参照してください。 データベース ユーザーを削除すると、そのユーザーに関連付けられているアクセス許可が自動的に削除され、そのユーザーがメンバーであるデータベース ロールからユーザーが削除されます。
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