안녕하세요. 어제 하루 삽질하다가 이렇게 질문 올립니다.
현재 사용하는 SQL 서버 버전은 Standard Edition (64-bit) 이며, SP1이 적용이 되어 있는 상태 입니다.
우선 SQL 서버는 A, B 서버가 있고 B 서버에 프로시져를 만들었고 이 프로시져를 Job으로 생성하여 매일 새벽 12시에 돌아가게 설정을 하였습니다. 실행되는 프로시져에는 A서버에서 Data를 가지고 오는 부분이 있기에 B 서버에 A서버로의 Linked Server를 설정 한 상태이고
각 서버에는 U1(db_owner)이라는 계정이 있어 이에 대한 로그인 매핑을 하였습니다.
U1으로 B 서버에 로그인을 하여 해당 프로시져를 실행하면 정상적으로 작동을 합니다.
단, Agent에서 실행을 하면 에러가 나며 A서버로의 로그인 매핑이 없어 Access Denied 되었다는 메세지가 나옵니다.
여기서 이해가 가지 않는 부분은 해당 Job에 대한 Owner는 U1인데, 로그인 매핑이 없다는 메세지를 보면 Agent Service를 실행하는 도메인계정(KR\Test)에 대한 로그인 매핑이 없다는 이야기가 나옵니다.
뭐 해결책으로는 로그인매핑에 KR\Test -> U1으로 추가해 주거나, 해당 Job의 Step에 Run as User를 U1으로 설정하면 Job도 에러가 발생하지는 않지만, 근본적으로 에러가 발생하는 이유가 궁금해서 질문 드립니다.
이와 같은 이야기라면 서비스 실행 계정에 대한 로그인 매핑을 해야 한다는 이야기 인데 이 부분이 잘 이해가 가지 않습니다.
Job의 View History를 보니 Execute as User가 Agent 서비스 실행 계정인 것도 있고, 로컬로그인계정인 것도 있네요....
아무쪼록 많은 도움 부탁 드립니다.
감사합니다.