SQL
소유자 변경.
ravon
2008. 9. 24. 16:08
역시나 자주 써먹던 쿼리문도 몆달 안쓰면 쉬운것도 잊어 버립니다.
아~~~ 나의 기억력 딱! 하루~~~~ ㅡ.ㅡ;
그러기에 정리해서 기록은 필수~~~ 이제 무슨내용이든 기록하는 버릇을 길러볼렵니다.
ABC 라는 데이터 베이스 백업 파일인 ABC.bak 파일을
ZZZ 라는 데이터 베이스로 이름을 변경하여 복원하였을경우 테이블의 소유자가 문제가 됩니다.
그럼 그 소유자 변경에 대해서 기록~ 또~ 기록~ 하도록 하겠습니다.
- 원본
DB명 : ABC
소유자 : admin
백업 파일 : ABC.bak
- 복원
DB명 : ZZZ
소유자 : copyman
위와 같이 백업 하였을경우
만약 복원한 ZZZ 의 DB 에서 zipe 이라는 테이블을 Select 할때
select * from zipe요렇게 하면 못볼러 옵니다. 그럼 원래 소유자인 admin 을 끼워서 불러 보면
select * from admin.zipe요렇게 하면 불러 오게 됩니다.
그러면 복원한 ZZZ 의 소유자인 copyman 으로 소유자를 변경할려면..
exec sp_changeobjectowner 'admin.zipe', 'copyman'
이렇게 하면 해당 zipe 테이블에 대한 소유자를 copyman 으로 바뀌게 됩니다.
만약 이렇게 바꿔야할 테이블들이 많다면
exec sp_msforeachtable ' sp_changeobjectowner "?","copyman"'
으로 모든 테이블을 변경할 수 있습니다. 물론 사용자 테이블만 이죠.