SQL Server/SQL Server Tip

Ad Hoc Distributed Queries 옵션

SungWookKang 2015. 7. 23. 09:36
반응형

Ad Hoc Distributed Queries 옵션

 

  • Version : SQL Server 2005, 2008, 2008R2, 2012

 

SQL Server에서 임시 분산 쿼리를 허용하는 옵션에 대해서 알아보자. 임시 분산 쿼리에는 OPENROWSET 및 OPENDATASOURCE 함수를 사용하여 OLE DB를 사용하는 원격 데이터 원본에 연결한다.

 

OPENROWSET과 OPENDATASOURCE는 자주 사용되지 않는 OLE DB 데이터 원본을 참조하기 위해서만 사용해야 한다. 자주 사용되는 데이터 원본에 대해서는 연결된 서버를 설정하여 사용해야 한다.

 

기본적으로 SQL Server에서는 OPENROWSET 및 OPENDATASOURCE를 사용하는 임시 분산 쿼리를 허용하지 않는다. 이 옵션을 1로 설정하면 임시 액세스가 허용 된다.

 

임시 이름 사용을 설정하면 SQL Server에 대한 모든 인증된 로그인에서 공급자에 액세스 할 수 있다. SSMS와 sp_configure를 사용하여 설정 값을 변경하여 보자.

 

[SSMS 설정]

SSMS를 실행하여 Ad Hoc Distributed Queries를 설정할 서버를 마우스 오른쪽 버튼으로 클릭한 후 패싯을 선택한다.

 

패싯 관리자 창이 나타나면 패싯에 [노출 영역 구성]을 선택한 다음 패싯 속성에서 AdHocRemoteQueriesEnabled를 True로 설정한다.

 

 

[sp_configure 설정]

Sp_configure에서 'Ad Hoc Distributed Queries' 값을 1로 설정하면 활성화, 0으로 설정하면 비활성화 된다. 기본 값은 0 이다.

sp_configure 'show advanced options', 1;

RECONFIGURE;

go

sp_configure 'Ad Hoc Distributed Queries', 1;

RECONFIGURE;

GO

 

sp_configure

GO

 

 

 

[Ad Hoc Distributed Queries 사용]

Ad Hoc Distributed Queries 설정이 완료 되었으면 쿼리를 호출해보자. 다음 스크립트는

 

SELECT a.*

FROM opendatasource ('sqloledb', 'data source=192.168.237.174;user id=sa;password=1234').[_Demo_DB1].[dbo].[tbl_y] AS a;

GO

 

 

 

 

[참고자료]

http://technet.microsoft.com/ko-kr/library/ms187569(v=sql.105).aspx

 

2014-01-03 / 강성욱 / http://sqlmvp.kr

 

 

반응형