2016-12-13 3 views
0

안녕하세요 두 가지 SQL Server 데이터베이스가 있습니다.연결된 서버 OLE DB 공급자 "SQLNCLI11"연결된 서버

이들은 서로 연결된 서버를 통해 서로 연결됩니다. 연결된 서버가 정상적으로 작동합니다.

는 내가하려고하면 :

SELECT 
    * 
FROM 
    OPENQUERY 
     ([192.168.1.170], 
     'SELECT MalCRM.dbo.ContractedNumber(1)') 

내가 아래에 오류가 발생합니다. 어떻게 해결할 수 있습니까?

연결된 서버 "192.168.1.170"에 대한 OLE DB 공급자 "SQLNCLI11"이 (가) 반환되었습니다. "지연된 준비를 완료 할 수 없습니다." 메시지 229, 수준 14, 상태 5, 줄 1 개체 'ContractedNumber', 데이터베이스 'MalCrm', 스키마 'dbo'에 대한 EXECUTE 권한이 거부되었습니다.

+1

같은 로그인을 사용하여 연결된 서버에서 직접'SELECT MalCRM.dbo.ContractedNumber (1)'쿼리를 실행 해보십시오. 거의 모든 계정에 필요한 권한이 없다는 것을 알게 될 것입니다. –

+0

죄송합니다. 나는 또한 잘 이해하지 못했습니다. 더 자세히 설명해 주시겠습니까? select 문은 대상 서버에서도 작동합니다. 하지만 db 링크로 실행하려고하면 할 수 없습니다. – Oracsql

+0

[192.168.1.170]에서 직접 쿼리를 실행할 수 없다고 생각됩니다. 링크가 제자리에 있지만 해당 서버에 필요한 권한이 없습니다. ssms를 통해 [192.168.1.170]에 연결하십시오. 쿼리를 실행합니다 ('SELECT MalCRM.dbo.ContractedNumber (1)'). 동일한 오류 메시지가 나타나면 dba에게 권한 수정을 요청하십시오. –

답변

0

Merhaba 베르는

나는
SELECT * FROM OPENQUERY([myInstance], 'SELECT AdventureWorks.dbo.test(3)') 

는 데이터베이스 기능이 유효의 자격 증명을 확인 했 완벽하게 작동 다음 SQL 쿼리를 시도? 권한 문제 인 것 같습니다. SQL Server linked server 보안 컨텍스트를 확인하고 데이터베이스 개체에 대한 실행 권한이 있는지 확인하십시오. 참조 된 자습서에서 보안 컨텍스트에서 원본 데이터베이스 사용자를 연결된 서버의 다른 사용자에 매핑 할 수 있습니다. 문제 일 수 있습니다.

+0

Merhaba Alper, 선택 사항에서 결과를 가져올 수 있지만 링크 된 서버 속성 - 보안으로 이동하고 가장을 선택해야합니다. 그것의 가장하지 않는 경우 나는 내가 쓴 오류가 점점. 어떤 해결책? – Oracsql

+0

링크 서버 구성을 "가장"로 선택하면 어떨까요? 이것은 두 서버의 SQL 로그인을 매핑합니다. – Eralper

+0

나는 데이터베이스에 연결할 수 없다는 것을 알기 시작한 후 어떤 사용자를 위해 이것을 선택했습니다 =) 지금 무엇을 해야할지 모르겠습니까? – Oracsql