DBAtlas · 데이터베이스 운영 아틀라스

15138: The database principal owns a schema in the database, and cannot be dropped (database principal이 스키마를 소유하고 있어 삭제 불가)

SQL Server

의미

데이터베이스 사용자/역할(database principal)을 삭제하려 했지만, 해당 principal이 데이터베이스의 스키마를 하나 이상 소유하고 있어 삭제할 수 없었다. 소유한 스키마를 다른 principal에게 이전하기 전까지 삭제할 수 없다.

원인

제거하려는 사용자가 하나 이상의 스키마의 OWNER다(예: 기본적으로 자신의 이름으로 생성된 스키마, 또는 AUTHORIZATION으로 지정된 스키마). SQL Server는 소유자 없는 스키마가 남지 않도록 삭제를 막는다.

해결 방법

사용자가 소유한 스키마를 찾는다: SELECT name FROM sys.schemas WHERE principal_id = USER_ID('app_user'); 이 스키마들의 소유권을 다른 principal(예: dbo)에게 이전한다: ALTER AUTHORIZATION ON SCHEMA::[app_schema] TO dbo; 스키마가 더 이상 필요 없고 비어 있다면 DROP SCHEMA. 소유권 이전 후 DROP USER를 다시 실행한다.

DBAtlas에서 열기 →

같은 데이터베이스의 다른 항목