728x90

요약

SQL Server 7.0은 데이터를 접근하기 위하여 OLE DB를 사용하며 OLE DB는 다양한 Data Source에 대한 분산 쿼리를 가능하게 합니다. 이 문서는 OLE DB Data Source에 대한 분산 쿼리를 수행하기 위하여 Linked Server 및 기타 환경을 설정하는 방법을 설명합니다.

추가 정보

환경 설정은 SQL 문이나 Enterprise Manager를 사용가능하며 이 자료에서는 SQL 문을 이용하는 방법을 다룹니다.
SQL 문을 이용한 환경 설정:
1. Data Source가 있는 Server를 현재 Login한 SQL Server에 추가합니다.
다음의 구문을 이용하여 추가하며 이 Stored Procedure는 OLE DB Provider의 종류에 따라서 요구하는 Argument가 다르므로 자세한 사용 방법은 Books Online을 참고하십시오.

Syntax:
sp_addlinkedserver [@server =] 'server' [, [@srvproduct =] 'product_name']
[, [@provider =] 'provider_name'] [, [@datasrc =] 'data_source']
[, [@location =] 'location'] [, [@provstr =] 'provider_string']
[, [@catalog =] 'catalog']
					
Arguments:

생성하고자 하는 Linked Server 명
[@server =] 'server'
					

Lined Server로 추가하고자하는 OLE DB Data Source의 제품명
[@srvproduct =] 'product_name'
					

OLE DB Provider의 고유한 프로그램 ID(PROGID)
[@provider =] 'provider_name'
					

OLE DB Provider가 이해하는 Data Source 명
[@datasrc =] 'data_source'
					

OLE DB Prodiver가 이해하는 데이터베이스의 위치
[@location =] 'location'
					

OLE DB Provider의 Connection String
[@provstr =] 'provider_string'
					

OLE DB Provider에 연결했을 때 사용되는 Catalog
[@catalog =] 'catalog'
					

예제 1:
USE master
Go
EXEC sp_addlinkedserver'SEOUL', N'SQL Server'
Go
					
위 예제는 SEOUL이라는 SQL Server를 Linked Server로 등록한 것입니다.

예제 2:
USE master
Go
EXEC sp_addlinkedserver  @server = 'DAEJEON',  @srvproduct = 'Oracle',
 @provider = 'MSDAORA',  @datasrc = 'ORADJ'
Go
					
위 예제는 SQL*Net alias가 ORADJ인 Oracle 데이터베이스를 DAEJEON이란 Linked server로 등록한 것입니다.
2. 데이터의 보안을 유지하기 위하여 Local Server와 Linked Server 사이의 Login id를 생성합니다. Local Server에 로그인한 사용자가 Linked Server에 있는 테이블을 접근하기 위하여 분산 Query를 수행하는 경우 내부적으로는 Local Server가 Linked Server로 로그 인하게 됩니다. 이 작업은 Local Server가 Linked Server로 로그인할 때 사용되어 지는 로그인 신임장을 지정하는 것입니다.

Syntax:
sp_addlinkedsrvlogin [@rmtsrvname =] 'rmtsrvname' [,[@useself =] 'useself']
[,[@locallogin =] 'locallogin'] [,[@rmtuser =] 'rmtuser'] [,[@rmtpassword =] 'rmtpassword']
					
Arguments:

Linked Server 이름
[@rmtsrvname =] 'rmtsrvname'

[@useself =] 'useself'
					
값이 TRUE인 경우 Local Server에 로그인한 사용자는 동일한 사용자 이름으로 rmtsrvname에 연결을 하게 되고, False인 경우는 rmtuser와 rmtpassword Argument를 사용하여 rmtsrv에 연결하게 됩니다. 따라서, 값이 TRUE인 경우는 rmtuser와 rmtpasword Argument는 무시됩니다.
[@locallogin =] 'locallogin'
					
Local Server에 로그인한 이름. 디폴트로 NULL이며 NULL은 모든 Local Login에 해당된다는 의미입니다.

rmtsrvname에 연결하기 위하여 사용되는 사용자명
[@rmtuser =] 'rmtuser'
					
rmtuser의 Password
[@rmtpassword =] 'rmtpassword'
					
예제:
EXEC sp_addlinkedsrvlogin 'SEOUL', 'false', NULL, 'DBUser', 'Password'
Go
					
위 예제는 Local Server에 로그인한 모든 사용자가 분산 쿼리를 수행할 수 있으며 이때 Local Server는 DBUser 계정과 Password란 암호로 SEOUL이란 Linked Server에 연결할 수 있음을 의미합니다.

위 본문은 다음 URL에서 가져 왔습니다.

http://support.microsoft.com/default.aspx?scid=kb;ko;601433

+ Recent posts