에러 내용

데이터베이스 보안 주체는 데이터베이스의 스키마을(를) 소유하며 삭제할 수 없습니다

(Microsoft SQL Server, 오류: 15138)

 

Msg 15110, Level 16, State 1, Line 14

The proposed new database owner is already a user or aliased in the database.

 

원인

변경하려는 계정이 이미 DB에 할당되어 있기 때문에

해소

DB의 기존 소유자를 삭제하는것이 아니라,

DB에 소유자을 변경하려는 계정을 삭제 후 실행

만약 스키마 정보에 삭제하려는 계정이 매칭되어 있다면, 변경 후 진행

USE TestDB;
DROP USER Test_srv;
--15138 오류가 난다면

select * from sys.schemas where principal_id = user_id('Test_srv');
-- 삭제하려는 아이디로 매핑된 스키마가 있는지 확인

ALTER AUTHORIZATION ON Schema::db_owner TO dbo;
-- db_owner의 소유자 정보를 dbo로 변경

-- add it back in AND change the dbowner
ALTER AUTHORIZATION ON DATABASE::TestDB TO Test_srv;    
-- DB 소유권 변경

참고

https://tori0712.tistory.com/5

http://www.sqlfingers.com/2017/07/sql-server-failure-to-change-database.html

 


to Top