DBAtlas · データベース運用アトラス

15138: The database principal owns a schema in the database, and cannot be dropped(データベースプリンシパルがスキーマを所有しているため削除できない)

SQL Server

意味

データベースユーザー/ロール (データベースプリンシパル) を削除しようとしたが、そのプリンシパルがデータベース内の 1 つ以上のスキーマを所有しているため削除できなかった。所有するスキーマを別のプリンシパルに移すまで削除できない。

原因

削除しようとしているユーザーが少なくとも 1 つのスキーマの OWNER である (例: デフォルトで自身の名前で作成されたスキーマ、または AUTHORIZATION で割り当てられたスキーマ)。SQL Server は孤立したスキーマが残るのを避けるため削除をブロックする。

対処方法

ユーザーが所有するスキーマを特定する: SELECT name FROM sys.schemas WHERE principal_id = USER_ID('app_user'); これらのスキーマの所有権を別のプリンシパル (例: dbo) に移す: ALTER AUTHORIZATION ON SCHEMA::[app_schema] TO dbo; スキーマが不要 (かつ空) であれば DROP SCHEMA を実行する。所有権を移した後、DROP USER を再実行する。

DBAtlas で開く →

同じデータベースの他の項目