본문 바로가기
소프트웨어/MSSQL

선택한 사용자는 개체를소유하고 있으므로 삭제할 수 없습니다.

by 씨디맨 2009. 1. 7.
320x100


MSSQL 을 재설치를 한뒤 DB 백업파일이나 또는 MDF 파일을 복원이나 연결을 통해서 복구를 마친 뒤

다시 소유자를 생성하고 DB 와 연결시켜주는 작업을 하려던 중 기존에 복원을 통해서 생성된 유저를 삭제하려고했을때

아래와 같은 오류메시지가 발생


" 선택한 사용자는 개체를 소유하고 있으므로 삭제할 수 없습니다. "



이메시지는 복원을 통해서 만들어진 기존 소유자가 뷰나 테이블에 소유권을 설정해놓은 부분이 따로 있기에
그부분 때문에 유저를 삭제 할 수 없다는 에러 메시지

쿼리분석기

EXEC sp_configure N'allow updates', 1
RECONFIGURE WITH OVERRIDE

-- 실행한 뒤  해당 DB 에서 sysobjects 테이블 에  uid 필드의 내용이 1 이 아닌것을 찾음
SELECT name,uid FROM sysobjects WHERE uid <> '1'

-- 1 이 아닌것을 발견했다면 그부분의 소유권때문에 발생한 문제이므로 숫자를 1 바꿈 (소유권을 dbo 로 넘겨버림)
UPDATE sysobjects SET uid = '1WHERE name='필드네임' and uid='uid번호

-- 원래대로 다시 돌려놓음
EXEC sp_configure N'allow updates', 0




기존에 유저를 삭제 한 뒤 다시 등록을 한뒤 연결작업을 해줌

댓글2