[MSSQL2005]64비트 SQL Server 2005에서 연결된 32비트 SQL Server 2000(7.0) 서버로 분산 쿼리를 실행하려고 하면 오류 메시지 해결방법
경력관리/개발 2010/04/30 15:58 Tweet연결된 서버(linked server)로 분산쿼리를 실행하려고 하면 아래와 같은 에러메세지가
나타납니다.
연결된 서버 "연결서버이름(xxxx)"의 OLE DB 공급자 "SQLNCLI"이(가) 메시지 "지정되지 않은 오류입니다."을(를) 반환했습니다.
연결된 서버 "연결서버이름(xxxx)"의 OLE DB 공급자 "SQLNCLI"이(가) 메시지 "이 작업을 완료하는 데 필요한 저장 프로시저가 서버에 없습니다. 시스템 관리자에게 문의하십시오."을(를) 반환했습니다.
메시지 7311, 수준 16, 상태 2, 줄 1
연결된 서버 "연결서버이름(xxxx)"에 대한 OLE DB 공급자 "SQLNCLI"의 스키마 행 집합 "DBSCHEMA_TABLES_INFO"을(를) 가져올 수 없습니다. 공급자가 인터페이스를 지원하지만 이 인터페이스를 사용하면 오류 코드가 반환됩니다.
연결된 서버 "연결서버이름(xxxx)"의 OLE DB 공급자 "SQLNCLI"이(가) 메시지 "이 작업을 완료하는 데 필요한 저장 프로시저가 서버에 없습니다. 시스템 관리자에게 문의하십시오."을(를) 반환했습니다.
메시지 7311, 수준 16, 상태 2, 줄 1
연결된 서버 "연결서버이름(xxxx)"에 대한 OLE DB 공급자 "SQLNCLI"의 스키마 행 집합 "DBSCHEMA_TABLES_INFO"을(를) 가져올 수 없습니다. 공급자가 인터페이스를 지원하지만 이 인터페이스를 사용하면 오류 코드가 반환됩니다.
원인.
이 문제는 시스템 저장 프로시저가 업그레이드되지 않았기 때문에 발생합니다. SQL Server 2000 SP3 또는 SQL Server 2000 SP4를 설치한 후 시스템 저장 프로시저를 수동으로 업그레이드해야 합니다.
해결방법.
하나. Instcat.sql 스크립트를 수동으로 실행하기
1. Windows 인증 모드를 사용하여 시스템 저장 프로시저를 업그레이드하려면
실행 > cmd > 아래 명령어 실행
osql -E -S <LinkedServerName> -i <Location>\instcat.sql
2. SQL Server 인증 모드를 사용하여 시스템 저장 프로시저를 업그레이드하려면
osql -U <AdminLogin> -P <AdminPassword> -S <LinkedServerName>
-i <Location>\instcat.sql
위 방법은 아래에서 간단하게 긁어옴
http://support.microsoft.com/kb/906954/ko
그런데 위 실행은 안해봤습니다. 서비스를 하고 있는 DB서버라서 혹시나 문제가
발생할까봐 못해봤습니다. ㅠㅠ
또 하나. 시스템프로시저 추가해주기
결국 한개의 프로시저만 있으면 간단하게 해결해주네여.
use master
Go
create procedure sp_tables_info_rowset_64
@table_name sysname,
@table_schema sysname = null,
@table_type nvarchar(255) = null
as
declare @Result int set @Result = 0
exec @Result = sp_tables_info_rowset @table_name, @table_schema, @table_type
위 프로시저만 한개 생성해주면 잘 됩니다.
생성을 하고 분산쿼리를 실행했떠니 아래와 같이 에러메세지가 나오면
연결된 서버 "연결서버이름(xxxx)"의 OLE DB 공급자 "SQLNCLI"이(가) 메시지 "지정되지 않은 오류입니다."을(를) 반환했습니다.
메시지 229, 수준 14, 상태 5, 프로시저 sp_tables_info_rowset_64, 줄 7
'dbo' 소유자, 'master' 데이터베이스, 'sp_tables_info_rowset_64' 개체에 대한 EXECUTE 사용 권한이 거부되었습니다.
실행권한을 줘야 실행이 되는군요.
아래와 같이 public EXEC 권한을 체크해줘야 합니다.










404381
149
96








댓글을 달아 주세요