서버 구성: 임시 분산 쿼리
적용 대상: SQL Server
기본적으로 SQL Server는 OPENROWSET
및 OPENDATASOURCE
을 사용하는 임시 분산 쿼리를 허용하지 않습니다. 이 옵션을 1
로 설정하면 SQL Server가 임시 액세스를 허용합니다. 이 옵션을 설정하지 않거나 0
으로 설정하면 SQL Server는 임시 액세스를 허용하지 않습니다.
임시 분산 쿼리에서는 OPENROWSET
및 OPENDATASOURCE
함수를 사용하여 OLE DB를 사용하는 원격 데이터 원본에 연결합니다. OPENROWSET
및 OPENDATASOURCE
는 자주 액세스하지 않는 OLE DB 데이터 원본을 참조하는 데만 사용해야 합니다. 여러 차례 액세스되는 데이터 원본에 대해서는 연결된 서버를 정의하세요.
임시 이름을 사용할 수 있도록 설정하면 인증된 모든 SQL Server 계정이 공급자에 액세스할 수 있습니다. SQL Server 관리자는 모든 로컬 계정에서 안전하게 액세스할 수 있는 공급자에 대해 이 기능을 사용하도록 설정해야 합니다.
설명
Ad Hoc Distributed Queries
가 비활성화된 상태에서 임시 연결을 시도하면 다음 오류가 표시됩니다.
Msg 7415, Level 16, State 1, Line 1
Ad hoc access to OLE DB provider 'Microsoft.ACE.OLEDB.12.0' has been denied. You must access this provider through a linked server.
Azure SQL Database 및 Azure SQL Managed Instance를 참조하세요.
기능 비교: Azure SQL Database 및 Azure SQL Managed Instance를 참조하세요.
예제
다음 예에서는 Ad Hoc Distributed Queries
를 사용하도록 설정한 다음, Seattle1
함수를 사용하여 OPENROWSET
이라는 서버를 쿼리합니다.
USE master;
GO
EXECUTE sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
EXECUTE sp_configure 'Ad Hoc Distributed Queries', 1;
GO
RECONFIGURE;
GO
SELECT a.*
FROM OPENROWSET ('MSOLEDBSQL', 'Server=Seattle1;Trusted_Connection=yes;', 'SELECT GroupName, Name, DepartmentID
FROM AdventureWorks2022.HumanResources.Department
ORDER BY GroupName, Name') AS a;
GO
EXECUTE sp_configure 'show advanced options', 0;
GO
RECONFIGURE;
GO