IT 이야기/IT Tech

가장 컨텍스트 모듈의 외부 리소스 접근시 주의할 사항

필넷 2010. 8. 17. 22:48
반응형

SQL Server의 연결된 서버 기능을 이용하면 로컬의 SQL Server에서 원격 서버에 있는 OLE DB 데이터 원본에 대해 명령을 실행할 수 있다.

따라서 저장프로시져 등을 통해 외부 데이터베이스로부터 데이터를 조회하거나 로컬의 SQL Server 내에 데이터와 조인하여 새로운 정보를 배치작업을 통해 집계할 수가 있다. 이는 일반적인 기업내에서 흔히 발생하는 작업이다.

예를들면, 마케팅부서에서 영업부서에 축적된 데이터베이스로 부터 마켓팅 관련 데이터만을 가져와서 마켓팅 부서내의 데이터베이스에 별도로 집계하여 활용하는 작업들이 있을 수 있다.

하지만 이와 같은 작업들을 위해 저장프로시져를 작성하고 SSMS(SQL Server Management Studio)내에서 실행시켜보면 잘 동작하는 것을 확인할 수 있지만, 주기적인 배치작업을 위해서 SQL Server Agent에 등록해서 실행시키다보면 종종 아래와 같은 오류를 내면서 제대로 동작하지 않는 경우를 흔히 보게된다.

Access to the remote server is denied because the current security context is not trusted

 이는 기본적으로 가장의 범위가 데이터베이스내로 제한되기 때문에 발생하는 문제(?)이다.

해결하는 방법은 간단하다. ALTER DATABASE문을 이용하여 가장의 범위를 외부로 확장해주면 된다. 아래와 같이 실행하면 된다.

ALTER DATABASE SET TRUSTWORTHY ON

 이 옵션을 설정하려면 sysadmin 고정 서버 역할의 멤버 자격이 필요하다.

이 글은 스프링노트에서 작성되었습니다.

반응형