티스토리 뷰

반응형

얼마전 서버에 문제가 생겨서 서버를 포멧 후 OS 재설치 > MSSSQL 설치 > 백업 받은 DB 복원 과정을 진행하였습니다.

 

복원 과정 진행 후 SQL_APIConsumer  적용시 Msg 33009 에러가 발행했습니다. 참고로 아래는 처음 적용시 적용 방법입니다.

2021.06.15 - [IT Story/TIP] - MSSQL 웹(Get/Post)통신 : SQL_APIConsumer Upgrade

 

MSSQL 웹(Get/Post)통신 : SQL_APIConsumer Upgrade

관련 강좌 2020.08.20 - [IT Story/TIP] - MSSQL 웹(Get/Post)통신 : SQL_APIConsumer MSSQL 웹(Get/Post)통신 : SQL_APIConsumer 공공Data 포탈이나 다른 시스템과 연동시 XML 또는 Json으로 Data를 Web을 통해 받아 오는 경우가

kindmaster.tistory.com

적용 방법은 위 강좌 참고 하면 됩니다.

 

위 강좌 진행 순서대로 적용 시 아래와 같은 오류가 발생 했습니다.

 

오류메시지

Msg 33009, Level 16, State 2, Procedure usp_xxxxx, Line 0
The database owner SID recorded in the master database differs from the database owner SID recorded in database ‘YourDatabase’. You should correct this situation by resetting the owner of database ‘YourDatabase’ using the ALTER AUTHORIZATION statement.

 

짧은 영어실력으로 번역 해보니 master database 소유자의 SID와  현재 사용 할려는 database 소유자의 SID가 다르니 당신의Database에서 ALTER AUTHORIZATION 명령을 사용하려 소유자를 재설정 하라는 내용 같습니다.

 

그래서 아래 명령어로 Database 소유자를 확인 해 보았습니다.

SELECT a.name AS [Database],
             b.name AS [Owner]
FROM sys.databases AS a
JOIN sys.sql_logins AS b ON a.owner_sid = b.sid

조회 결과

복원한 Database 의 소유자가 조회 되지 않습니다.

 

ALTER AUTHORIZATION 명령어로 사용 할  Database  의 소유자를 재설정 해보겠습니다.

 

ALTER AUTHORIZATION ON DATABASE:: DatabaseName TO 사용자;

-- 예를 들어 databasename GCDB 이고 사용자명이 ggachi이면 아래와 같이 명령을 작성하면됩니다.
ALTER AUTHORIZATION ON DATABASE:: GCDB TO ggachi;

참고로 전 권한문제가 발생 할 것 같아 소유자를  sa로 통일해서 변경 했습니다.

(sa 통일 안해도 될것 같지만 해보질 않아서 자세한 설명은 패스합니다. 해당 포스팅 포고 적용한 분들 댓글 부탁합니다.)

위 소유자 문제만 해결되면 SQL_APIConsumer  가이드를 참고하여 실행 하면 정상 작동합니다.

 

반응형
댓글