none
linked server 프로시져 호출 에러 RRS feed

  • 질문

  • A서버에서 B서버가 연결된 서버로 설정되어 있습니다.

    A서버에서 일반적인 쿼리를 실행하면 문제없이 동작 합니다.

    그런데 아래의 처럼 프로시져를 호출하면 오류가 납니다.

    - 실행문

    exec B.DB_NAME1.DBO.[SP_PROCE_1] 'pPARAM1'

    - 오류내용

    'USER_1'이(가) 서버에서 원격 로그인으로 정의되어 있지 않으므로 서버 'SERVER'에 연결할 수 없습니다. 올바른 로그인 이름을 지정했는지 확인하십시오. .

    구글링을 통해 B서버에 윈도우 계정 USER_1를 추가하였지만 문제가 해결 되지 않았습니다.

    도대체 무슨 이유인지 모르겠습니다.  도움 부탁드립니다...

    참고로 환경은 아래와 같습니다.

    * A서버

      - os : server 2012R2 std

      - sql : 2008 std

    * B서버

      - os : server 2003 std

      - sql : 2005 std


    • 편집됨 Yunho Lee 2017년 7월 27일 목요일 오전 7:02
    2017년 7월 27일 목요일 오전 6:58

답변

모든 응답

  • 안녕하세요,

    다음 링크의 내용을 참고하여 주시기 바랍니다.

    ■ MSSQL 2016: 서버에서 원격 로그인으로 정의되어 있지 않으므로 서버에 연결할 수 없습니다.
    http://systemcenter.wiki/?GetElement=Microsoft.SQLServer.2016.Could_not_connect_to_server_because_it_is_not_defined_as_a_remote_login_at_the_server_1_5_Rule&Type=Rule&ManagementPack=Microsoft.SQLServer.2016.Monitoring&Version=6.7.7.0&Language=KOR

    • 답변으로 표시됨 Yunho Lee 2017년 7월 31일 월요일 오전 8:56
    2017년 7월 31일 월요일 오전 6:11
    중재자
  • 안녕하세요,

    다음 링크의 내용을 참고하여 주시기 바랍니다.

    ■ MSSQL 2016: 서버에서 원격 로그인으로 정의되어 있지 않으므로 서버에 연결할 수 없습니다.
    http://systemcenter.wiki/?GetElement=Microsoft.SQLServer.2016.Could_not_connect_to_server_because_it_is_not_defined_as_a_remote_login_at_the_server_1_5_Rule&Type=Rule&ManagementPack=Microsoft.SQLServer.2016.Monitoring&Version=6.7.7.0&Language=KOR

    먼저.. 바쁘신 와중에도 이렇게 답변 주셔서 감사합니다.


    저도 동일한 페이지의 내용을 참고하였었는데..

    이런 쪽으로는 사전지식이 부족하다보니.. 이해가 되지않아 해결하지 못했었습니다.

    아무튼 다시 위 페이지의 내용을 곰곰히 읽어보고.. 이것 저것 다시 해보니 해결됐습니다.

    다른 분들을 위해 해결 내용을 공유하겠습니다.


    우선, 이 페이지의 내용을 보면 아래 처럼 되어 있습니다.

    로그인 매핑이 없거나 연결 문자열에 지정된 서버 이름이 sysremotelogins 테이블의 정확한 이름과 일치하지 않고 게스트 계정에 sysremotelogins의 매핑이 없는 경우 이 오류를 수신합니다. 원격 사용자의 로그인 이름이 null이거나 비어 있는 경우에도 이 오류가 나타납니다.


    이내용을 보고 master 테이블에 sys.sysremotelogins 를 검색해보니..

    게시구독에 사용되는 계정만 등록되어 었었습니다.


    게시구독을 설정을 할떄는 아무런 액션을 하지 않았음에도 sysremotelogins에 등록되어 있고,

    Linked DB를 설정하였을 때는 sysremotelogins에 등록되지 않는 것을 보아, 두 방식이 무언가 차이점이 있나 봅니다.

    (혹 두 방식의 차이점에 대해서 알고 계신 분이 있으면 공유 부탁드립니다.)


    여하튼.. sysremotelogins에 해당 원격 사용자 계정을 추가 하기위해서는 sp_addremotelogin를 사용하면 됩니다.

    여기서 주의할 점은 계정 추가의 대상은 로컬서버가 아니고 원격서버에 추가해야 합니다.

    제 질문에서는 A서버가 로컬서버, B서버가 원격서버입니다.

    다시 한 번 도움 주셔서 감사합니다...








    • 편집됨 Yunho Lee 2017년 7월 31일 월요일 오전 9:31
    2017년 7월 31일 월요일 오전 9:17